home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Assassins - Ultimate CD Games Collection 4
/
Assassins 4 (1999)(Weird Science).iso
/
adventures_2
/
adventure1
/
advent.z5
(
.txt
)
next >
Wrap
Z-code for Z-machine
|
1977-12-31
|
84KB
|
8,143 lines
Resident data ends at 54bc, program starts at 54bc, file ends at 14768
Starting analysis pass at address 54bc
End of analysis pass, low address = 54bc, high address = 10468
[Start of code]
Main routine R0001, 0 locals
STORE G08,#0f
CALL_1N R0038
RTRUE
Routine R0002, 1 local
SPLIT_WINDOW #01
SET_WINDOW #01
SET_CURSOR #01,#01
SET_TEXT_STYLE REVERSE
LOADB #00,#21 -> -(SP)
SUB (SP)+,#01 -> -(SP)
STORE Gef,(SP)+
JL Gef,#01 [TRUE] L0002
L0001: PRINT_CHAR ' '
SUB Gef,#01 -> Gef
JE Gef,#00 [FALSE] L0001
L0002: SET_CURSOR #01,#02
CALL_2N R0065 (G00)
LOADB #00,#01 -> -(SP)
AND (SP)+,#02 -> -(SP)
JE (SP)+,#00 [FALSE] L0003
SET_CURSOR #01,#33
PRINT "Score: "
PRINT_NUM G01
SET_CURSOR #01,#40
PRINT "Moves: "
PRINT_NUM G02
JUMP L0008
L0003: SET_CURSOR #01,#33
PRINT "Time: "
MOD G01,#0c -> L00
JL L00,#0a [FALSE] L0004
PRINT " "
L0004: JE L00,#00 [FALSE] L0005
STORE L00,#0c
L0005: PRINT_NUM L00
PRINT ":"
JL G02,#0a [FALSE] L0006
PRINT "0"
L0006: PRINT_NUM G02
DIV G01,#0c -> -(SP)
JG (SP)+,#00 [FALSE] L0007
PRINT " pm"
JUMP L0008
L0007: PRINT " am"
L0008: SET_CURSOR #01,#01
SET_TEXT_STYLE ROMAN
SET_WINDOW #00
RTRUE
Routine R0003, 7 locals
CALL_1N R0036
L0001: STORE L03,#00
DEC L03
L0002: JL L03,#09 [FALSE] L0003
INC L03
LOADB L01,L03 -> -(SP)
STOREB G44,L03,(SP)+
JUMP L0002
L0003: PRINT "
>"
STOREB L00,#01,#00
CALL_1N R0002
READ L00,L01 -> Gef
LOADB L01,#01 -> L02
JE L02,#00 [FALSE] L0004
PRINT "I beg your pardon?
"
JUMP L0001
L0004: LOADW L01,#01 -> L04
JE L04,"o","oops" [FALSE] L0005
JUMP L0015
L0005: JE L04,"undo" [FALSE] L0011
JE G2c,#00 [FALSE] L0006
PRINT "[Your interpreter does not provide "undo". Sorry!]
"
JUMP L0001
L0006: JE G2c,#01 [FALSE] L0007
JUMP L0009
L0007: JE G6d,#01 [FALSE] L0008
PRINT "[Can't "undo" twice in succession. Sorry!]
"
JUMP L0001
L0008: RESTORE_UNDO -> L03
JE L03,#00 [FALSE] L0010
L0009: PRINT ""Undo" failed. [Not every interpreter provides it.]
"
L0010: JUMP L0001
L0011: SAVE_UNDO -> L03
STORE G6d,#00
STORE G2c,#02
JE L03,#ffff [FALSE] L0012
STORE G2c,#00
L0012: JE L03,#00 [FALSE] L0013
STORE G2c,#01
L0013: JE L03,#02 [FALSE] L0014
PRINT "
"
PRINT_OBJ G00
PRINT "
[Previous turn undone]
"
STORE G6d,#01
JUMP L0001
L0014: RET L02
L0015: JE G42,#00 [FALSE] L0016
PRINT "Sorry, that can't be corrected.
"
JUMP L0001
L0016: JE L02,#01 [FALSE] L0017
PRINT "Think nothing of it.
"
JUMP L0001
L0017: JG L02,#02 [FALSE] L0018
PRINT ""Oops" can only correct a single word.
"
JUMP L0001
L0018: LOADW L01,#03 -> L05
LOADW L01,#04 -> L06
STORE L03,#00
DEC L03
L0019: JL L03,#09 [FALSE] L0020
INC L03
LOADB G44,L03 -> -(SP)
STOREB L01,L03,(SP)+
JUMP L0019
L0020: MUL #02,G42 -> -(SP)
SUB (SP)+,#01 -> L04
STOREW L01,L04,L05
INC L04
STOREW L01,L04,L05
RET L02
Routine R0004, 10 locals
JE G27,#01 [FALSE] L0003
STORE L05,#00
L0001: JL L05,#08 [FALSE] L0002
LOADW G5a,L05 -> -(SP)
STOREW L00,L05,(SP)+
INC L05
JUMP L0001
L0002: STORE G27,#00
RTRUE
L0003: JE G5d,#01 [FALSE] L0006
STORE G5d,#00
STORE L05,#00
L0004: JL L05,#40 [FALSE] L0005
LOADB G30,L05 -> -(SP)
STOREB G17,L05,(SP)+
INC L05
JUMP L0004
L0005: NEW_LINE
JUMP L0007
L0006: CALL_VN R0003 (G16,G17)
L0007: LOADB G17,#01 -> G33
STORE G35,#01
STORE G1a,G08
STORE G63,#00
STORE G6a,#00
L0008: STORE G32,G35
CALL_1S R0031 -> G34
JE G34,"g" [FALSE] L0009
STORE G34,"again"
L0009: JE G34,"again" [FALSE] L0013
LOADB G31,#01 -> -(SP)
JE (SP)+,#00 [FALSE] L0010
PRINT "You can hardly repeat that.
"
JUMP L0006
L0010: STORE L05,#00
L0011: JL L05,#40 [FALSE] L0012
LOADB G31,L05 -> -(SP)
STOREB G17,L05,(SP)+
INC L05
JUMP L0011
L0012: JUMP L0007
L0013: JE G34,"again" [TRUE] L0015
STORE L05,#00
L0014: JL L05,#40 [FALSE] L0015
LOADB G17,L05 -> -(SP)
STOREB G31,L05,(SP)+
INC L05
JUMP L0014
L0015: JE G34,#00 [FALSE] L0016
JE G1a,G08 [FALSE] L0016
CALL_2S R0332 (G34) -> G34
L0016: JE G34,#00 [FALSE] L0017
STORE G5f,#0b
JUMP L0093
L0017: LOADB G34,#06 -> -(SP)
AND (SP)+,#01 -> -(SP)
JE (SP)+,#00 [FALSE] L0030
STORE G32,G35
CALL_VS R0008 (#01,#00,#00) -> L08
JE L08,#03e8 [FALSE] L0018
JUMP L0007
L0018: JE L08,#00 [TRUE] L0019
STOREW L00,#00,#24
STOREW L00,#01,#01
STOREW L00,#02,L08
JUMP L0121
L0019: JE G1a,G08 [FALSE] L0022
STORE L06,#02
L0020: JG L06,G33 [TRUE] L0022
CALL_1S R0031 -> L05
JE L05,"xcomma" [FALSE] L0021
JUMP L0024
L0021: INC L06
JUMP L0020
L0022: JE G1a,G08 [FALSE] L0023
CALL_2S R0332 (G34) -> G34
JE G34,#00 [TRUE] L0023
JUMP L0030
L0023: STORE G5f,#0b
JUMP L0093
L0024: SUB G32,#01 -> L06
JE L06,#01 [FALSE] L0025
PRINT "You can't begin with a comma.
"
JUMP L0006
L0025: STORE G32,#01
STORE G53,#01
CALL_VS R0008 (G08,G00,#06) -> L08
JE L08,#03e8 [FALSE] L0026
JUMP L0007
L0026: JE L08,#00 [FALSE] L0027
PRINT "You seem to want to talk to someone, but I can't see
whom.
"
JUMP L0006
L0027: TEST_ATTR L08,#03 [TRUE] L0028
TEST_ATTR L08,#1a [TRUE] L0028
PRINT "You can't talk to "
CALL_2N R0063 (L08)
PRINT ".
"
JUMP L0006
L0028: JE G32,L06 [TRUE] L0029
PRINT "To talk to someone, try "someone, hello" or some such.
"
JUMP L0006
L0029: CALL_2N R0033 (L08)
ADD L06,#01 -> G35
STORE G1a,L08
JUMP L0008
L0030: LOADB G34,#06 -> -(SP)
AND (SP)+,#02 -> -(SP)
DIV (SP)+,#02 -> G29
LOADB G34,#07 -> -(SP)
SUB #ff,(SP)+ -> L05
LOADW #00,#07 -> -(SP)
LOADW (SP)+,L05 -> L01
LOADB L01,#00 -> -(SP)
SUB (SP)+,#01 -> L03
STORE G4e,S127 OR "it"
STORE G4f,G50
JL G2d,#01 [TRUE] L0031
PRINT "[Parsing for the verb '"
PRINT_ADDR G34
PRINT "' ("
ADD L03,#01 -> -(SP)
PRINT_NUM (SP)+
PRINT " lines)]
"
L0031: STORE G5f,#01
STORE L02,#00
L0032: JG L02,L03 [TRUE] L0093
MUL L02,#08 -> -(SP)
ADD #01,(SP)+ -> -(SP)
ADD L01,(SP)+ -> L04
JL G2d,#01 [TRUE] L0035
PRINT "[Line "
PRINT_NUM L02
PRINT ": "
LOADB L04,#00 -> -(SP)
PRINT_NUM (SP)+
PRINT " parameters: "
STORE G3b,#01
L0033: JG G3b,#06 [TRUE] L0034
LOADB L04,G3b -> L07
PRINT_NUM L07
PRINT " "
INC G3b
JUMP L0033
L0034: PRINT " -> action "
LOADB L04,#07 -> -(SP)
PRINT_NUM (SP)+
PRINT "]
"
L0035: STORE G59,#00
STORE G40,#00
STORE G3e,#00
STORE G3f,#00
STOREW G21,#00,#00
STORE G60,#01
LOADB L04,#07 -> G67
ADD G35,#01 -> G32
STORE G64,#ffff
STORE L05,#00
STORE G3b,#01
L0036: JG G3b,#06 [TRUE] L0048
STORE G6a,#00
LOADB L04,G3b -> L07
JL L07,#b4 [FALSE] L0037
INC L05
L0037: JE L07,#04,#05 [FALSE] L0047
JE L05,#01 [FALSE] L0047
JL G2d,#02 [TRUE] L0038
PRINT " [Trying look-ahead]
"
L0038: INC G3b
L0039: JG G3b,#06 [TRUE] L0040
LOADB L04,G3b -> -(SP)
JL (SP)+,#b4 [TRUE] L0040
INC G3b
JUMP L0039
L0040: SUB G3b,#01 -> -(SP)
LOADB L04,(SP)+ -> L07
JL L07,#b4 [TRUE] L0047
CALL_2S R0030 (L07) -> L06
L0041: JG G32,G33 [TRUE] L0047
CALL_1S R0031 -> -(SP)
JE (SP)+,L06 [FALSE] L0046
CALL_VS R0008 (G00,G1a,L07) -> L08
JL G2d,#02 [TRUE] L0044
PRINT " [Forward token parsed: "
JE L08,#03e8 [FALSE] L0042
PRINT "re-parse request]
"
L0042: JE L08,#01 [FALSE] L0043
PRINT "but multiple found]
"
L0043: JE L08,#00 [FALSE] L0044
PRINT "hit error "
PRINT_NUM G60
PRINT "]
"
L0044: JE L08,#03e8 [FALSE] L0045
JUMP L0007
L0045: JL L08,#02 [TRUE] L0046
STORE G64,L08
JL G2d,#03 [TRUE] L0046
CALL_2N R0063 (L08)
PRINT "]
"
L0046: JUMP L0041
L0047: INC G3b
JUMP L0036
L0048: STORE G59,#00
STORE G40,#00
STORE G3e,#00
STORE G3f,#00
STOREW G21,#00,#00
STORE G60,#01
LOADB L04,#07 -> G67
ADD G35,#01 -> G32
STORE G3b,#01
L0049: JG G3b,#06 [TRUE] L0091
STOREW G3a,G3b,#00
LOADB L04,G3b -> L07
JL G2d,#02 [TRUE] L0064
PRINT " [Token "
PRINT_NUM G3b
PRINT " is "
PRINT_NUM L07
PRINT ": "
JL L07,#10 [FALSE] L0058
JE L07,#00 [FALSE] L0050
PRINT "<noun> or null"
L0050: JE L07,#01 [FALSE] L0051
PRINT "<held>"
L0051: JE L07,#02 [FALSE] L0052
PRINT "<multi>"
L0052: JE L07,#03 [FALSE] L0053
PRINT "<multiheld>"
L0053: JE L07,#04 [FALSE] L0054
PRINT "<multiexcept>"
L0054: JE L07,#05 [FALSE] L0055
PRINT "<multiinside>"
L0055: JE L07,#06 [FALSE] L0056
PRINT "<creature>"
L0056: JE L07,#07 [FALSE] L0057
PRINT "<special>"
L0057: JE L07,#08 [FALSE] L0058
PRINT "<number>"
L0058: JL L07,#10 [TRUE] L0059
JL L07,#30 [FALSE] L0059
PRINT "<noun filter by routine "
SUB L07,#10 -> -(SP)
PRINT_NUM (SP)+
PRINT ">"
L0059: JL L07,#30 [TRUE] L0060
JL L07,#50 [FALSE] L0060
PRINT "<general parse by routine "
SUB L07,#30 -> -(SP)
PRINT_NUM (SP)+
PRINT ">"
L0060: JL L07,#50 [TRUE] L0061
JL L07,#80 [FALSE] L0061
PRINT "<scope parse by routine "
SUB L07,#50 -> -(SP)
PRINT_NUM (SP)+
PRINT ">"
L0061: JL L07,#80 [TRUE] L0062
JL L07,#b4 [FALSE] L0062
PRINT "<noun filter by attribute "
SUB L07,#80 -> -(SP)
PRINT_NUM (SP)+
PRINT ">"
L0062: JG L07,#b4 [FALSE] L0063
PRINT "<adjective "
SUB #ff,L07 -> -(SP)
PRINT_NUM (SP)+
PRINT " '"
CALL_2S R0030 (L07) -> -(SP)
PRINT_ADDR (SP)+
PRINT "'>"
L0063: PRINT " at word number "
PRINT_NUM G32
PRINT "]
"
L0064: ADD G3b,#01 -> L09
STORE G53,#08
JG L09,#06 [TRUE] L0065
LOADB L04,L09 -> G53
L0065: JE G53,#00 [FALSE] L0067
STORE L09,G3e
JG L07,#07 [TRUE] L0066
INC L09
L0066: LOADB L04,#00 -> -(SP)
JL L09,(SP)+ [TRUE] L0067
STORE G53,#08
L0067: JG L07,#b4 [FALSE] L0071
ADD #03e8,L07 -> -(SP)
STOREW G3a,G3b,(SP)+
JG G32,G33 [FALSE] L0069
JE G40,#00 [FALSE] L0068
LOADB L04,#00 -> -(SP)
JL G3e,(SP)+ [FALSE] L0068
STORE G40,G3b
STORE G41,L07
L0068: JE G40,#00 [FALSE] L0069
JUMP L0091
L0069: JG G32,G33 [TRUE] L0070
CALL_1S R0029 -> -(SP)
JE L07,(SP)+ [TRUE] L0070
JUMP L0091
L0070: JUMP L0090
L0071: LOADB L04,#00 -> -(SP)
JE G3e,(SP)+ [FALSE] L0085
JG G32,G33 [TRUE] L0075
CALL_1S R0031 -> L08
JE L08,"then","xcomma" [FALSE] L0072
STORE G5d,#01
SUB G32,#01 -> G5e
JUMP L0075
L0072: STORE L09,#00
L0073: JL L09,#08 [FALSE] L0074
LOADW G3a,L09 -> -(SP)
STOREW G3c,L09,(SP)+
INC L09
JUMP L0073
L0074: STORE G3d,G3b
STORE G60,#02
JUMP L0091
L0075: JL G3e,#01 [TRUE] L0076
LOADW L00,#02 -> -(SP)
JE (SP)+,#00 [FALSE] L0076
LOADW L00,#03 -> -(SP)
CALL_2S R0010 ((SP)+) -> L08
JE L08,#00 [TRUE] L0076
STORE G60,L08
JUMP L0091
L0076: JL G3e,#02 [TRUE] L0077
LOADW L00,#03 -> -(SP)
JE (SP)+,#00 [FALSE] L0077
LOADW L00,#02 -> -(SP)
CALL_2S R0010 ((SP)+) -> L08
JE L08,#00 [TRUE] L0077
STORE G60,L08
JUMP L0091
L0077: JL G2d,#01 [TRUE] L0078
PRINT "[Line successfully parsed]
"
L0078: JE G40,#00 [TRUE] L0079
PRINT "("
CALL_VN R0014 (G40,#01)
PRINT ")
"
L0079: LOADB L04,#00 -> -(SP)
STOREW L00,#01,(SP)+
LOADB L04,#07 -> -(SP)
STOREW L00,#00,(SP)+
JG G3e,#00 [FALSE] L0080
LOADW L00,#02 -> -(SP)
JL (SP)+,#02 [TRUE] L0080
LOADW L00,#02 -> -(SP)
CALL_2N R0033 ((SP)+)
L0080: STORE G42,#00
JE G59,#00 [TRUE] L0083
JE G1a,G08 [FALSE] L0083
STORE G27,#01
STORE L05,#00
L0081: JL L05,#08 [FALSE] L0082
LOADW L00,L05 -> -(SP)
STOREW G5a,L05,(SP)+
INC L05
JUMP L0081
L0082: STOREW L00,#00,#11
STOREW L00,#01,#01
STOREW L00,#02,G59
PRINT "(first taking "
CALL_2N R0063 (G59)
PRINT ")
"
L0083: JE G5d,#01 [FALSE] L0084
STORE G32,G5e
JUMP L0121
L0084: RTRUE
L0085: CALL_VS R0007 (L00,L07) -> L08
JL G2d,#03 [TRUE] L0088
PRINT " [Parse object list replied with"
JE L08,#03e8 [FALSE] L0086
PRINT " re-parse request]
"
L0086: JE L08,#00 [FALSE] L0087
PRINT " token failed, error type "
PRINT_NUM G60
PRINT "]
"
L0087: JE L08,#01 [FALSE] L0088
PRINT " token accepted]
"
L0088: JE L08,#03e8 [FALSE] L0089
JUMP L0007
L0089: JE L08,#00 [FALSE] L0090
JUMP L0091
L0090: INC G3b
JUMP L0049
L0091: JG G60,G5f [FALSE] L0092
STORE G5f,G60
L0092: INC L02
JUMP L0032
L0093: STORE G60,G5f
JE G1a,G08 [TRUE] L0094
CALL_2S R0032 (G35) -> G23
STORE G32,G35
CALL_1S R0031 -> G22
STORE G1b,#42
STORE G1c,#01
STORE G1d,G1a
STORE G1a,G08
RTRUE
L0094: CALL_2S R0334 (G60) -> -(SP)
JE (SP)+,#00 [TRUE] L0095
JUMP L0006
L0095: JE G60,#01 [FALSE] L0096
PRINT "I didn't understand that sentence.
"
STORE G42,#01
L0096: JE G60,#02 [FALSE] L0099
PRINT "I only understood you as far as wanting to "
STORE L09,#00
L0097: JL L09,#08 [FALSE] L0098
LOADW G3c,L09 -> -(SP)
STOREW G3a,L09,(SP)+
INC L09
JUMP L0097
L0098: STORE G3b,G3d
CALL_VN R0014 (#00,#01)
PRINT ".
"
L0099: JE G60,#03 [FALSE] L0100
PRINT "You can't see any such thing.
"
STORE G42,G43
L0100: JE G60,#04 [FALSE] L0101
PRINT "You seem to have said too little!
"
L0101: JE G60,#05 [FALSE] L0102
PRINT "You aren't holding that!
"
STORE G42,G43
L0102: JE G60,#06 [FALSE] L0103
PRINT "You can't use multiple objects with that verb.
"
L0103: JE G60,#07 [FALSE] L0104
PRINT "You can only use multiple objects once on a line.
"
L0104: JE G60,#08 [FALSE] L0105
PRINT "I'm not sure what ""
PRINT_ADDR G4e
PRINT "" refers to.
"
L0105: JE G60,#09 [FALSE] L0106
PRINT "You excepted something not included anyway!
"
L0106: JE G60,#0a [FALSE] L0107
PRINT "You can only do that to something animate.
"
L0107: JE G60,#0b [FALSE] L0108
PRINT "That's not a verb I recognise.
"
L0108: JE G60,#0c [FALSE] L0109
PRINT "That's not something you need to refer to in the course
of this game.
"
L0109: JE G60,#0d [FALSE] L0110
PRINT "You can't see ""
PRINT_ADDR G4e
PRINT "" ("
CALL_2N R0063 (G4f)
PRINT ") at the moment.
"
L0110: JE G60,#0e [FALSE] L0111
PRINT "I didn't understand the way that finished.
"
L0111: JE G60,#0f [FALSE] L0116
JE G38,#00 [FALSE] L0112
PRINT "None"
JUMP L0113
L0112: PRINT "Only "
CALL_2N R0066 (G38)
L0113: PRINT " of those "
JE G38,#01 [FALSE] L0114
PRINT "is"
JUMP L0115
L0114: PRINT "are"
L0115: PRINT " available.
"
L0116: JE G60,#10 [FALSE] L0118
JE G37,#64 [FALSE] L0117
PRINT "Nothing to do!
"
JUMP L0118
L0117: PRINT "There are none at all available!
"
L0118: JE G60,#11 [FALSE] L0119
PRINT "I didn't understand that number.
"
L0119: JE G60,#12 [FALSE] L0120
STORE G6c,#03
CALL_VS G6b -> Gef
L0120: JUMP L0006
L0121: JG G32,G33 [FALSE] L0122
RTRUE
L0122: CALL_1S R0031 -> L05
JE L05,"then" [TRUE] L0123
JE L05,"xcomma" [FALSE] L0139
L0123: JG G32,G33 [FALSE] L0124
LOADB G30,#01 -> -(SP)
SUB (SP)+,#01 -> -(SP)
STOREB G30,#01,(SP)+
STORE G5d,#00
RTRUE
L0124: JE G1a,G08 [FALSE] L0125
STORE L06,#00
JUMP L0126
L0125: SUB G35,#01 -> L06
L0126: ADD L06,#01 -> G61
SUB G32,#02 -> G62
CALL_1S R0031 -> L05
JE L05,"again","g" [FALSE] L0133
STORE L05,#00
L0127: JL L05,L06 [FALSE] L0128
MUL #02,L05 -> -(SP)
ADD (SP)+,#01 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L05 -> -(SP)
ADD (SP)+,#01 -> -(SP)
STOREW G30,(SP)+,(SP)+
MUL #02,L05 -> -(SP)
ADD (SP)+,#02 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L05 -> -(SP)
ADD (SP)+,#02 -> -(SP)
STOREW G30,(SP)+,(SP)+
INC L05
JUMP L0127
L0128: STORE L05,G61
L0129: JG L05,G62 [TRUE] L0130
MUL #02,L05 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L06 -> -(SP)
ADD #02,(SP)+ -> -(SP)
STOREW G30,(SP)+,(SP)+
MUL #02,L05 -> -(SP)
SUB (SP)+,#01 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L06 -> -(SP)
ADD #01,(SP)+ -> -(SP)
STOREW G30,(SP)+,(SP)+
INC L05
INC L06
JUMP L0129
L0130: STORE L05,G32
L0131: JG L05,G33 [TRUE] L0132
MUL #02,L05 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L06 -> -(SP)
ADD #02,(SP)+ -> -(SP)
STOREW G30,(SP)+,(SP)+
MUL #02,L05 -> -(SP)
SUB (SP)+,#01 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L06 -> -(SP)
ADD #01,(SP)+ -> -(SP)
STOREW G30,(SP)+,(SP)+
INC L05
INC L06
JUMP L0131
L0132: STOREB G30,#01,L06
STORE G5d,#01
RTRUE
JUMP L0134
L0133: DEC G32
L0134: STORE L05,#00
L0135: JL L05,L06 [FALSE] L0136
MUL #02,L05 -> -(SP)
ADD (SP)+,#01 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L05 -> -(SP)
ADD (SP)+,#01 -> -(SP)
STOREW G30,(SP)+,(SP)+
MUL #02,L05 -> -(SP)
ADD (SP)+,#02 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L05 -> -(SP)
ADD (SP)+,#02 -> -(SP)
STOREW G30,(SP)+,(SP)+
INC L05
JUMP L0135
L0136: STORE L05,G32
L0137: JG L05,G33 [TRUE] L0138
MUL #02,L05 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L06 -> -(SP)
ADD #02,(SP)+ -> -(SP)
STOREW G30,(SP)+,(SP)+
MUL #02,L05 -> -(SP)
SUB (SP)+,#01 -> -(SP)
LOADW G17,(SP)+ -> -(SP)
MUL #02,L06 -> -(SP)
ADD #01,(SP)+ -> -(SP)
STOREW G30,(SP)+,(SP)+
INC L05
INC L06
JUMP L0137
L0138: STOREB G30,#01,L06
STORE G5d,#01
RTRUE
L0139: STORE G5f,#02
JUMP L0093
Routine R0005, 1 local
JE L00,"one" [FALSE] L0001
RET #01
L0001: JE L00,"two" [FALSE] L0002
RET #02
L0002: JE L00,"three" [FALSE] L0003
RET #03
L0003: JE L00,"four" [FALSE] L0004
RET #04
L0004: JE L00,"five" [FALSE] L0005
RET #05
L0005: JE L00,"six" [FALSE] L0006
RET #06
L0006: JE L00,"seven" [FALSE] L0007
RET #07
L0007: JE L00,"eight" [FALSE] L0008
RET #08
L0008: JE L00,"nine" [FALSE] L0009
RET #09
L0009: JE L00,"ten" [FALSE] L0010
RET #0a
L0010: JE L00,"eleven" [FALSE] L0011
RET #0b
L0011: JE L00,"twelve" [FALSE] L0012
RET #0c
L0012: JE L00,"thirteen" [FALSE] L0013
RET #0d
L0013: JE L00,"fourteen" [FALSE] L0014
RET #0e
L0014: JE L00,"fifteen" [FALSE] L0015
RET #0f
L0015: JE L00,"sixteen" [FALSE] L0016
RET #10
L0016: JE L00,"seventeen" [FALSE] L0017
RET #11
L0017: JE L00,"eighteen" [FALSE] L0018
RET #12
L0018: JE L00,"nineteen" [FALSE] L0019
RET #13
L0019: JE L00,"twenty" [FALSE] L0020
RET #14
L0020: RET #00
Routine R0006, 4 locals
STORE G54,#00
STORE G55,#00
STORE G56,#00
STORE G57,#00
STORE L02,#01
L0001: JE L02,#01 [FALSE] L0016
CALL_1S R0031 -> L01
STORE L02,#00
JE L01,"the" [FALSE] L0002
STORE L02,#01
L0002: JE L01,"a","an","any" [TRUE] L0003
JE L01,"either","anything" [FALSE] L0004
L0003: STORE G54,#01
STORE L02,#01
L0004: JE L01,"another","other" [FALSE] L0005
STORE G54,#01
STORE L02,#01
OR G55,#01 -> G55
L0005: JE L01,"my","this","these" [FALSE] L0006
STORE G54,#01
STORE L02,#01
OR G55,#02 -> G55
L0006: JE L01,"that","those" [FALSE] L0007
STORE G54,#01
STORE L02,#01
OR G55,#04 -> G55
L0007: JE L01,"its" [FALSE] L0008
STORE G54,#01
STORE L02,#01
OR G55,#10 -> G55
L0008: JE L01,"his" [FALSE] L0009
STORE G54,#01
STORE L02,#01
OR G55,#20 -> G55
L0009: JE L01,"lit","lighted" [FALSE] L0010
STORE G54,#01
STORE L02,#01
OR G55,#40 -> G55
L0010: JE L01,"unlit" [FALSE] L0011
STORE G54,#01
STORE L02,#01
OR G55,#80 -> G55
L0011: JE L01,"all","each","every" [TRUE] L0012
JE L01,"everythin" [FALSE] L0013
L0012: STORE G54,#01
STORE L02,#01
STORE G56,#64
OR G55,#08 -> G55
L0013: JE G58,#01 [FALSE] L0014
CALL_2S R0005 (L01) -> L03
JG L03,#01 [FALSE] L0014
STORE G57,#01
STORE G54,#01
STORE L02,#01
STORE G56,L03
OR G55,#08 -> G55
L0014: JE L02,#01 [FALSE] L0015
CALL_1S R0031 -> -(SP)
JE (SP)+,"of" [TRUE] L0015
DEC G32
L0015: JUMP L0001
L0016: DEC G32
JG G56,#00 [FALSE] L0018
JL L00,#02 [TRUE] L0017
JG L00,#05 [FALSE] L0018
L0017: RET #06
L0018: RET #00
Routine R0007, 11 locals
STORE L0a,#00
STORE L07,#01
STOREB G21,#00,#00
STORE G68,#00
L0001: JL G2d,#03 [TRUE] L0002
PRINT " [Object list from word "
PRINT_NUM G32
PRINT "]
"
L0002: CALL_1S R0031 -> L03
DEC G32
JE L03,S127 OR "it","them" [FALSE] L0003
STORE G4e,L03
STORE G4f,G50
JE G50,#00 [FALSE] L0003
STORE G60,#08
RET #00
L0003: JE L03,"him" [FALSE] L0004
STORE G4e,L03
STORE G4f,G51
JE G51,#00 [FALSE] L0004
STORE G60,#08
RET #00
L0004: JE L03,"her" [FALSE] L0005
STORE G4e,L03
STORE G4f,G52
JE G52,#00 [FALSE] L0005
STORE G60,#08
RET #00
L0005: JE L03,"me","myself","self" [FALSE] L0006
STORE G4e,L03
STORE G4f,G08
L0006: JE L01,#07 [FALSE] L0011
CALL_2S R0032 (G32) -> L02
JE L02,#fc18 [TRUE] L0009
JE G3f,#00 [FALSE] L0007
STORE G23,L02
JUMP L0008
L0007: STORE G24,L02
L0008: INC G3f
JL G2d,#03 [TRUE] L0009
PRINT " [Read special as the number "
PRINT_NUM L02
PRINT "]
"
L0009: JL G2d,#03 [TRUE] L0010
PRINT " [Read special word at word number "
PRINT_NUM G32
PRINT "]
"
L0010: CALL_1S R0031 -> G22
STORE L08,#01
JUMP L0060
L0011: JE L01,#08 [FALSE] L0016
PUSH G32
INC G32
CALL_2S R0032 ((SP)+) -> L02
JE L02,#fc18 [FALSE] L0012
STORE G60,#11
RFALSE
L0012: JL G2d,#03 [TRUE] L0013
PRINT " [Read number as "
PRINT_NUM L02
PRINT "]
"
L0013: PUSH G3f
INC G3f
JE (SP)+,#00 [FALSE] L0014
STORE G23,L02
JUMP L0015
L0014: STORE G24,L02
L0015: STORE L08,#01
JUMP L0060
L0016: JL L01,#30 [TRUE] L0022
JL L01,#50 [FALSE] L0022
SUB L01,#30 -> -(SP)
LOADW #3acb,(SP)+ -> -(SP)
CALL_VS (SP)+ -> L02
JL G2d,#03 [TRUE] L0017
PRINT " [Outside parsing routine returned "
PRINT_NUM L02
PRINT "]
"
L0017: JL L02,#00 [FALSE] L0018
RFALSE
L0018: JE L02,#01 [FALSE] L0021
JE G3f,#00 [FALSE] L0019
STORE G23,G25
JUMP L0020
L0019: STORE G24,G25
L0020: INC G3f
L0021: STORE L08,L02
JUMP L0060
L0022: JL L01,#50 [TRUE] L0025
JL L01,#80 [FALSE] L0025
SUB L01,#50 -> -(SP)
LOADW #3acb,(SP)+ -> G6a
STORE G6c,#01
CALL_VS G6a -> L02
JL G2d,#03 [TRUE] L0023
PRINT " [Scope routine returned multiple-flag of "
PRINT_NUM L02
PRINT "]
"
L0023: JE L02,#01 [FALSE] L0024
STORE L01,#02
JUMP L0025
L0024: STORE L01,#00
L0025: STORE G63,#00
JL L01,#10 [TRUE] L0026
STORE G63,L01
STORE L01,#00
L0026: STORE G58,#01
STORE L09,G32
L0027: CALL_2S R0006 (L01) -> L02
JE L02,#00 [TRUE] L0028
STORE G60,L02
RET #00
L0028: STORE G42,G32
JE L01,#01 [TRUE] L0047
LOADW G21,#00 -> L04
JL G2d,#03 [TRUE] L0029
PRINT " [Calling NounDomain on location and actor]
"
L0029: CALL_VS R0008 (G00,G1a,L01) -> L02
JE L02,#03e8 [FALSE] L0030
RET L02
L0030: JE L02,#00 [FALSE] L0031
CALL_1S R0015 -> G60
JUMP L0063
L0031: JL G2d,#03 [TRUE] L0035
JG L02,#01 [FALSE] L0032
PRINT " [ND returned "
CALL_2N R0063 (L02)
PRINT "]
"
JUMP L0035
L0032: PRINT " [ND appended to the multiple object list:
"
LOADW G21,#00 -> L06
ADD L04,#01 -> L05
L0033: JG L05,L06 [TRUE] L0034
PRINT " Entry "
PRINT_NUM L05
PRINT ": "
LOADW G21,L05 -> -(SP)
CALL_2N R0064 ((SP)+)
PRINT " ("
LOADW G21,L05 -> -(SP)
PRINT_NUM (SP)+
PRINT ")
"
INC L05
JUMP L0033
L0034: PRINT " List now has size "
PRINT_NUM L06
PRINT "]
"
L0035: JE L02,#01 [FALSE] L0042
JE L0a,#00 [FALSE] L0036
STORE L0a,#01
JUMP L0041
L0036: LOADW G21,#00 -> L06
STOREW G21,#00,L04
ADD L04,#01 -> L05
L0037: JG L05,L06 [TRUE] L0040
JE L07,#01 [FALSE] L0038
LOADW G21,L05 -> -(SP)
CALL_2N R0016 ((SP)+)
JUMP L0039
L0038: LOADW G21,L05 -> -(SP)
CALL_2N R0017 ((SP)+)
L0039: INC L05
JUMP L0037
L0040: JL G2d,#03 [TRUE] L0041
PRINT " [Merging "
SUB L06,L04 -> -(SP)
PRINT_NUM (SP)+
PRINT " new objects to the "
PRINT_NUM L04
PRINT " old ones]
"
L0041: JUMP L0047
L0042: JE L01,#06 [FALSE] L0043
TEST_ATTR L02,#03 [TRUE] L0043
STORE G60,#0a
JUMP L0063
L0043: JE L0a,#00 [FALSE] L0044
STORE L08,L02
JUMP L0047
L0044: JE L07,#01 [FALSE] L0045
CALL_2N R0016 (L02)
JUMP L0046
L0045: CALL_2N R0017 (L02)
L0046: JL G2d,#03 [TRUE] L0047
PRINT " [Combining "
CALL_2N R0063 (L08)
PRINT " with list]
"
L0047: JE L01,#01 [FALSE] L0052
CALL_VS R0008 (G1a,G00,L01) -> L02
JE L02,#03e8 [FALSE] L0048
RET L02
L0048: JE L02,#00 [FALSE] L0049
CALL_1S R0015 -> G60
RET L02
L0049: GET_PARENT L02 -> L03
JE L03,G1a [TRUE] L0051
JE G27,#01 [FALSE] L0050
STORE G43,G42
STORE G60,#05
JUMP L0063
L0050: STORE G59,L02
JL G2d,#03 [TRUE] L0051
PRINT " [Allowing object "
CALL_2N R0063 (L02)
PRINT " for now]
"
L0051: STORE L08,L02
L0052: ADD G42,G49 -> G32
CALL_1S R0031 -> L03
JE L03,"and","but","except" [TRUE] L0053
JE L03,"xcomma" [FALSE] L0059
L0053: JL G2d,#03 [TRUE] L0054
PRINT " [Read '"
PRINT_ADDR L03
PRINT "']
"
L0054: JL L01,#02 [TRUE] L0055
JL L01,#06 [TRUE] L0056
L0055: STORE G60,#06
JUMP L0063
L0056: JE L03,"but","except" [FALSE] L0057
SUB #01,L07 -> L07
L0057: JE L0a,#00 [FALSE] L0058
STOREW G21,#00,#01
STOREW G21,#01,L08
STORE L0a,#01
JL G2d,#03 [TRUE] L0058
PRINT " [Making new list from "
CALL_2N R0063 (L08)
PRINT "]
"
L0058: STORE G68,#01
STORE G40,#00
JUMP L0001
L0059: DEC G32
L0060: JE L0a,#01 [FALSE] L0061
STORE L08,#00
JUMP L0062
L0061: JE G54,#01 [FALSE] L0062
AND G55,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0062
JL G56,#64 [FALSE] L0062
JG G56,#01 [FALSE] L0062
STORE G38,#01
STORE G37,G56
STORE G60,#0f
JUMP L0063
L0062: ADD G3e,#02 -> -(SP)
STOREW L00,(SP)+,L08
INC G3e
STOREW G3a,G3b,L08
RET #01
L0063: JE G58,#01 [FALSE] L0064
JE G57,#01 [FALSE] L0064
STORE G58,#00
STORE G32,L09
JUMP L0027
L0064: RET #00
Routine R0008, 11 locals
JL G2d,#04 [TRUE] L0001
PRINT " [NounDomain called at word "
PRINT_NUM G32
PRINT "
"
L0001: STORE G49,#00
STORE G47,#00
STORE G4a,G32
STORE G65,#00
CALL_VN R0021 (L00,L01,L02)
JL G2d,#04 [TRUE] L0002
PRINT " [ND made "
PRINT_NUM G47
PRINT " matches]
"
L0002: ADD G4a,G49 -> G32
JE G47,#00 [FALSE] L0003
INC G32
RFALSE
L0003: JG G4a,G33 [TRUE] L0007
JE G47,#01 [FALSE] L0004
LOADW G45,#00 -> L04
RET L04
L0004: JG G32,G33 [TRUE] L0007
JE G53,#08 [FALSE] L0005
CALL_1S R0031 -> L04
DEC G32
JE L04,"and","xcomma","then" [TRUE] L0005
RFALSE
L0005: JG G53,#08 [FALSE] L0007
CALL_1S R0029 -> -(SP)
JE G53,(SP)+ [TRUE] L0006
DEC G32
RFALSE
L0006: DEC G32
L0007: STORE G48,#00
JE G47,#01 [FALSE] L0008
LOADW G45,#00 -> L04
L0008: JG G47,#01 [FALSE] L0010
CALL_2S R0009 (L02) -> L04
JE L04,#ffff [FALSE] L0009
RFALSE
L0009: JE L04,#01 [FALSE] L0010
RTRUE
L0010: JE L04,#00 [TRUE] L0013
JE G68,#01 [FALSE] L0011
RET L04
L0011: JE G40,#00 [FALSE] L0012
STORE G40,G3b
L0012: STOREW G3a,G3b,L04
RET L04
L0013: JG G4a,G33 [FALSE] L0014
JUMP L0036
L0014: JE L02,#06 [FALSE] L0015
PRINT "Who"
JUMP L0016
L0015: PRINT "Which"
L0016: PRINT " do you mean, "
STORE L05,G48
STORE L0a,#00
STORE L04,#01
L0017: JG L04,G48 [TRUE] L0024
L0018: LOADW G46,L0a -> -(SP)
JE (SP)+,L04 [TRUE] L0019
SUB #00,L04 -> -(SP)
LOADW G46,L0a -> -(SP)
JE (SP)+,(SP)+ [TRUE] L0019
INC L0a
JUMP L0018
L0019: LOADW G45,L0a -> L06
LOADW G46,L0a -> -(SP)
JG (SP)+,#00 [FALSE] L0020
CALL_2N R0063 (L06)
JUMP L0021
L0020: CALL_2N R0062 (L06)
L0021: SUB L05,#01 -> -(SP)
JL L04,(SP)+ [FALSE] L0022
PRINT ", "
L0022: SUB L05,#01 -> -(SP)
JE L04,(SP)+ [FALSE] L0023
PRINT " or "
L0023: INC L04
JUMP L0017
L0024: PRINT "?
"
L0025: CALL_VS R0003 (G2f,G30) -> L09
LOADW G30,#01 -> L03
JE L03,"all","both","everythin" [TRUE] L0026
JE L03,"every","each" [FALSE] L0030
L0026: JL L02,#02 [TRUE] L0029
JG L02,#05 [TRUE] L0029
LOADW G21,#00 -> L07
STORE L04,#00
L0027: JL L04,G47 [FALSE] L0028
LOADW G45,L04 -> L06
ADD #01,L07 -> -(SP)
ADD L04,(SP)+ -> -(SP)
STOREW G21,(SP)+,L06
INC L04
JUMP L0027
L0028: ADD G47,L07 -> -(SP)
STOREW G21,#00,(SP)+
RTRUE
L0029: PRINT "Sorry, you can only have one item here. Which one
exactly?
"
JUMP L0025
L0030: LOADB L03,#06 -> L05
AND L05,#01 -> -(SP)
JE #00,(SP)+ [TRUE] L0031
CALL_VN R0035 (G16,G2f)
CALL_VN R0035 (G17,G30)
RET #03e8
L0031: LOADB G17,#01 -> L08
ADD L09,L08 -> -(SP)
STOREB G17,#01,(SP)+
ADD L08,L09 -> L06
L0032: JG L06,G4a [FALSE] L0033
SUB L06,L09 -> -(SP)
CALL_VN R0020 (L06,G17,(SP)+)
DEC L06
JUMP L0032
L0033: STORE L06,#01
L0034: JG L06,L09 [TRUE] L0035
SUB L06,#01 -> -(SP)
ADD G4a,(SP)+ -> -(SP)
CALL_VN R0020 ((SP)+,G30,L06)
INC L06
JUMP L0034
L0035: RET #03e8
L0036: JE L02,#06 [FALSE] L0037
PRINT "Whom"
JUMP L0038
L0037: PRINT "What"
L0038: PRINT " do you want"
JE G1a,G08 [TRUE] L0039
PRINT " "
CALL_2N R0063 (G1a)
L0039: PRINT " to "
CALL_VN R0014 (#00,#01)
PRINT "?
"
CALL_VS R0003 (G2f,G30) -> L09
LOADW G30,#01 -> L03
LOADB L03,#06 -> L05
AND L05,#01 -> -(SP)
JE #00,(SP)+ [TRUE] L0040
CALL_VN R0035 (G16,G2f)
CALL_VN R0035 (G17,G30)
RET #03e8
L0040: LOADB G17,#01 -> L08
JE G40,#00 [FALSE] L0043
STORE L06,#01
L0041: JG L06,L09 [TRUE] L0042
SUB L06,#01 -> -(SP)
ADD G4a,(SP)+ -> -(SP)
CALL_VN R0020 ((SP)+,G30,L06)
INC L06
JUMP L0041
L0042: JUMP L0046
L0043: STORE L06,#01
L0044: JG L06,L09 [TRUE] L0045
ADD G4a,L06 -> -(SP)
CALL_VN R0020 ((SP)+,G30,L06)
INC L06
JUMP L0044
L0045: CALL_2S R0030 (G41) -> -(SP)
STOREW G30,#01,(SP)+
CALL_VN R0020 (G4a,G30,#01)
INC L09
L0046: ADD L09,L08 -> -(SP)
STOREB G17,#01,(SP)+
RET #03e8
Routine R0009, 9 locals
JL G2d,#04 [TRUE] L0002
PRINT " [Adjudicating match list of size "
PRINT_NUM G47
PRINT "
"
L0002: SUB G47,#01 -> L02
STORE L03,#00
LOADW G45,#00 -> L04
STORE L01,#00
L0003: JG L01,L02 [TRUE] L0015
LOADW G45,L01 -> L05
TEST_ATTR L05,#05 [TRUE] L0014
STORE L06,L05
L0004: GET_PARENT L06 -> L06
JE L06,G00,G1a,#00 [FALSE] L0004
JE L00,#00 [FALSE] L0006
JE L06,G00 [FALSE] L0006
JE G63,#00 [TRUE] L0005
CALL_2S R0019 (L05) -> -(SP)
JE (SP)+,#01 [FALSE] L0006
L0005: INC L03
STORE L04,L05
L0006: JE L00,#01 [FALSE] L0007
GET_PARENT L05 -> -(SP)
JE (SP)+,G1a [FALSE] L0007
INC L03
STORE L04,L05
L0007: JE L00,#02 [FALSE] L0008
JE L06,G00 [FALSE] L0008
INC L03
STORE L04,L05
L0008: JE L00,#03 [FALSE] L0009
GET_PARENT L05 -> -(SP)
JE (SP)+,G1a [FALSE] L0009
INC L03
STORE L04,L05
L0009: JE L00,#04,#05 [FALSE] L0013
JE G64,#ffff [FALSE] L0011
GET_PARENT L05 -> -(SP)
JE (SP)+,G1a [FALSE] L0010
INC L03
STORE L04,L05
L0010: JUMP L0013
L0011: JE L00,#04 [FALSE] L0012
GET_PARENT L05 -> -(SP)
JE (SP)+,G1a [FALSE] L0012
JE L05,G64 [TRUE] L0012
INC L03
STORE L04,L05
L0012: JE L00,#05 [FALSE] L0013
GET_PARENT L05 -> -(SP)
JE (SP)+,G1a [FALSE] L0013
GET_PARENT L05 -> -(SP)
JE (SP)+,G64 [FALSE] L0013
INC L03
STORE L04,L05
L0013: JE L00,#06 [FALSE] L0014
TEST_ATTR L05,#03 [FALSE] L0014
INC L03
STORE L04,L05
L0014: INC L01
JUMP L0003
L0015: JE L03,#01 [FALSE] L0016
RET L04
L0016: JE G54,#01 [FALSE] L0027
AND G55,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0027
JL L00,#02 [TRUE] L0017
JG L00,#05 [FALSE] L0018
L0017: STORE G60,#06
RET #ffff
L0018: STORE L01,#00
STORE G48,#01
LOADW G21,#00 -> L08
CALL_1S R0012 -> L02
L0019: JE L02,#ffff [TRUE] L0024
JL L01,G56 [FALSE] L0024
TEST_ATTR L02,#05 [TRUE] L0023
TEST_ATTR L02,#1e [TRUE] L0023
STORE L07,#01
JE L00,#03,#04 [FALSE] L0020
GET_PARENT L02 -> -(SP)
JE (SP)+,G1a [TRUE] L0020
STORE L07,#00
L0020: JE L07,#01 [FALSE] L0022
INC L01
ADD L01,L08 -> -(SP)
STOREW G21,(SP)+,L02
JL G2d,#04 [TRUE] L0021
PRINT " Accepting it
"
L0021: JUMP L0023
L0022: JL G2d,#04 [TRUE] L0023
PRINT " Rejecting it
"
L0023: CALL_1S R0012 -> L02
JUMP L0019
L0024: JL L01,G56 [FALSE] L0025
JL G56,#64 [FALSE] L0025
STORE G60,#0f
STORE G37,G56
LOADW G21,#00 -> G38
RET #ffff
L0025: ADD L01,L08 -> -(SP)
STOREW G21,#00,(SP)+
STORE G39,L00
JL G2d,#04 [TRUE] L0026
PRINT " Made multiple object of size "
PRINT_NUM L01
PRINT "]
"
L0026: RET #01
L0027: STORE L01,#00
L0028: JL L01,G47 [FALSE] L0029
STOREW G46,L01,#00
INC L01
JUMP L0028
L0029: STORE L05,#01
STORE L01,#00
L0030: JL L01,G47 [FALSE] L0035
LOADW G46,L01 -> -(SP)
JE (SP)+,#00 [FALSE] L0034
PUSH L05
INC L05
STOREW G46,L01,(SP)+
STORE L07,#00
ADD L01,#01 -> L02
L0031: JL L02,G47 [FALSE] L0033
LOADW G46,L02 -> -(SP)
JE (SP)+,#00 [FALSE] L0032
LOADW G45,L02 -> -(SP)
LOADW G45,L01 -> -(SP)
CALL_VS R0013 ((SP)+,(SP)+) -> -(SP)
JE (SP)+,#01 [FALSE] L0032
STORE L07,#01
LOADW G46,L01 -> -(SP)
STOREW G46,L02,(SP)+
L0032: INC L02
JUMP L0031
L0033: JE L07,#01 [FALSE] L0034
SUB #01,L05 -> -(SP)
STOREW G46,L01,(SP)+
L0034: INC L01
JUMP L0030
L0035: DEC L05
JL G2d,#04 [TRUE] L0037
PRINT " Difficult adjudication with "
PRINT_NUM L05
PRINT " equivalence classes:
"
STORE L01,#00
L0036: JL L01,G47 [FALSE] L0037
PRINT " "
LOADW G45,L01 -> -(SP)
CALL_2N R0064 ((SP)+)
PRINT " ("
LOADW G45,L01 -> -(SP)
PRINT_NUM (SP)+
PRINT ") --- "
LOADW G46,L01 -> -(SP)
PRINT_NUM (SP)+
PRINT "
"
INC L01
JUMP L0036
L0037: STORE G48,L05
JG L05,#01 [FALSE] L0039
JE G54,#00 [FALSE] L0039
JL G2d,#04 [TRUE] L0038
PRINT " Unable to decide: it's a draw.]
"
L0038: JUMP L0001
L0039: JE G54,#00 [FALSE] L0040
STORE G55,#00
L0040: JE L05,#01 [FALSE] L0041
STORE G68,#01
L0041: CALL_1S R0012 -> -(SP)
RET (SP)+
Routine R0010, 3 locals
JL G2d,#04 [TRUE] L0001
PRINT " Revising the multiple object list
"
L0001: JE G39,#04,#05 [FALSE] L0007
STORE L01,#01
STORE L02,#00
L0002: LOADW G21,#00 -> -(SP)
JG L01,(SP)+ [TRUE] L0006
JE G39,#04 [FALSE] L0003
LOADW G21,L01 -> -(SP)
JE (SP)+,L00 [FALSE] L0004
L0003: JE G39,#05 [FALSE] L0005
LOADW G21,L01 -> -(SP)
GET_PARENT (SP)+ -> -(SP)
JE (SP)+,L00 [FALSE] L0005
L0004: INC L02
LOADW G21,L01 -> -(SP)
STOREW G21,L02,(SP)+
L0005: INC L01
JUMP L0002
L0006: STOREW G21,#00,L02
L0007: JE G39,#02 [FALSE] L0016
STORE L01,#01
STORE L02,#00
L0008: LOADW G21,#00 -> -(SP)
JG L01,(SP)+ [TRUE] L0010
LOADW G21,L01 -> -(SP)
GET_PARENT (SP)+ -> -(SP)
JE (SP)+,G00 [FALSE] L0009
INC L02
L0009: INC L01
JUMP L0008
L0010: JL G2d,#04 [TRUE] L0011
PRINT " Token 2 plural case: number on floor "
PRINT_NUM L02
PRINT "
"
L0011: JE G34,"take","get" [TRUE] L0012
JG L02,#00 [FALSE] L0016
L0012: STORE L01,#01
STORE L02,#00
L0013: LOADW G21,#00 -> -(SP)
JG L01,(SP)+ [TRUE] L0015
LOADW G21,L01 -> -(SP)
GET_PARENT (SP)+ -> -(SP)
JE (SP)+,G00 [FALSE] L0014
INC L02
LOADW G21,L01 -> -(SP)
STOREW G21,L02,(SP)+
L0014: INC L01
JUMP L0013
L0015: STOREW G21,#00,L02
L0016: LOADW G21,#00 -> L01
JE L01,#00 [FALSE] L0017
RET #10
L0017: RET #00
Routine R0011, 7 locals
AND G55,#01 -> -(SP)
JE (SP)+,#00 [TRUE] L0001
STORE L04,#04
L0001: AND G55,#02 -> -(SP)
JE (SP)+,#00 [TRUE] L0002
ADD L04,#04 -> L04
L0002: AND G55,#04 -> -(SP)
JE (SP)+,#00 [TRUE] L0003
ADD L04,#04 -> L04
L0003: AND G55,#10 -> -(SP)
JE (SP)+,#00 [TRUE] L0004
ADD L04,#04 -> L04
L0004: AND G55,#20 -> -(SP)
JE (SP)+,#00 [TRUE] L0005
ADD L04,#04 -> L04
L0005: AND G55,#40 -> -(SP)
JE (SP)+,#00 [TRUE] L0006
ADD L04,#04 -> L04
L0006: AND G55,#80 -> -(SP)
JE (SP)+,#00 [TRUE] L0007
ADD L04,#04 -> L04
L0007: JL G2d,#04 [TRUE] L0008
PRINT " Scoring match list with type "
PRINT_NUM G55
PRINT ", threshold "
PRINT_NUM L04
PRINT ":
"
L0008: STORE L05,#03
STORE L06,#02
JE G67,#11,#12 [FALSE] L0009
STORE L05,#02
STORE L06,#03
L0009: STORE L03,#00
L0010: JL L03,G47 [FALSE] L0023
LOADW G45,L03 -> L02
GET_PARENT L02 -> L00
STORE L01,#00
JE L00,G1a [FALSE] L0011
STORE L01,#03
L0011: JE L00,G00 [FALSE] L0012
STORE L01,#02
L0012: JE L01,#00 [FALSE] L0013
JE L00,#01 [TRUE] L0013
STORE L01,#01
L0013: AND G55,#01 -> -(SP)
JE (SP)+,#00 [TRUE] L0014
JE L02,G50,G51,G52 [TRUE] L0014
ADD L01,#04 -> L01
L0014: AND G55,#02 -> -(SP)
JE (SP)+,#00 [TRUE] L0015
JE L00,G1a [FALSE] L0015
ADD L01,#04 -> L01
L0015: AND G55,#04 -> -(SP)
JE (SP)+,#00 [TRUE] L0016
JE L00,G00 [FALSE] L0016
ADD L01,#04 -> L01
L0016: AND G55,#40 -> -(SP)
JE (SP)+,#00 [TRUE] L0017
TEST_ATTR L02,#0d [FALSE] L0017
ADD L01,#04 -> L01
L0017: AND G55,#80 -> -(SP)
JE (SP)+,#00 [TRUE] L0018
TEST_ATTR L02,#0d [TRUE] L0018
ADD L01,#04 -> L01
L0018: AND G55,#10 -> -(SP)
JE (SP)+,#00 [TRUE] L0019
JE L00,G50 [FALSE] L0019
ADD L01,#04 -> L01
L0019: AND G55,#20 -> -(SP)
JE (SP)+,#00 [TRUE] L0020
TEST_ATTR L00,#03 [FALSE] L0020
CALL_2S R0034 (L00) -> -(SP)
JE (SP)+,#01 [FALSE] L0020
ADD L01,#04 -> L01
L0020: JL L01,L04 [FALSE] L0021
STOREW G45,L03,#ffff
JUMP L0022
L0021: STOREW G46,L03,L01
JL G2d,#04 [TRUE] L0022
PRINT " "
LOADW G45,L03 -> -(SP)
CALL_2N R0064 ((SP)+)
PRINT " ("
LOADW G45,L03 -> -(SP)
PRINT_NUM (SP)+
PRINT ") in "
CALL_2N R0063 (L00)
PRINT " scores "
PRINT_NUM L01
PRINT "
"
L0022: INC L03
JUMP L0010
L0023: STORE G48,#02
RTRUE
Routine R0012, 4 locals
JE G48,#01 [FALSE] L0001
CALL_1N R0011
L0001: STORE L00,#00
STORE L02,#ffff
STORE L03,#00
L0002: JL L03,G47 [FALSE] L0004
LOADW G45,L03 -> -(SP)
JL (SP)+,#00 [TRUE] L0003
LOADW G46,L03 -> L01
JG L01,L02 [FALSE] L0003
STORE L02,L01
STORE L00,L03
L0003: INC L03
JUMP L0002
L0004: JL G2d,#04 [TRUE] L0006
JL L02,#00 [FALSE] L0005
PRINT " Best guess ran out of choices
"
JUMP L0006
L0005: PRINT " Best guess "
LOADW G45,L00 -> -(SP)
CALL_2N R0063 ((SP)+)
PRINT " ("
LOADW G45,L00 -> -(SP)
PRINT_NUM (SP)+
PRINT ")
"
L0006: JL L02,#00 [FALSE] L0007
RET #ffff
L0007: LOADW G45,L00 -> L03
STOREW G45,L00,#ffff
RET L03
Routine R0013, 9 locals
JE L00,L01 [FALSE] L0001
RTRUE
L0001: JE L00,#00 [TRUE] L0002
JE L01,#00 [FALSE] L0003
L0002: RFALSE
L0003: GET_PARENT L00 -> -(SP)
JE (SP)+,#01 [TRUE] L0004
GET_PARENT L01 -> -(SP)
JE (SP)+,#01 [FALSE] L0005
L0004: RFALSE
L0005: GET_PROP L00,#1e -> -(SP)
JE (SP)+,#00 [FALSE] L0006
GET_PROP L01,#1e -> -(SP)
JE (SP)+,#00 [TRUE] L0009
L0006: GET_PROP L01,#1e -> -(SP)
GET_PROP L00,#1e -> -(SP)
JE (SP)+,(SP)+ [TRUE] L0007
RFALSE
L0007: STORE G4b,#fc
STORE G4c,L00
STORE G4d,L01
STORE L07,G32
CALL_VS R0039 (L00,#1e) -> L06
STORE G32,L07
JE L06,#ffff [FALSE] L0008
RTRUE
L0008: JE L06,#fffe [FALSE] L0009
RFALSE
L0009: GET_PROP_ADDR L00,#01 -> L02
GET_PROP_ADDR L00,#01 -> -(SP)
STORE Gef,(SP)+
JZ Gef [TRUE] L0010
GET_PROP_LEN Gef -> Gef
L0010: PUSH Gef
DIV (SP)+,#02 -> L04
GET_PROP_ADDR L01,#01 -> L03
GET_PROP_ADDR L01,#01 -> -(SP)
STORE Gef,(SP)+
JZ Gef [TRUE] L0011
GET_PROP_LEN Gef -> Gef
L0011: PUSH Gef
DIV (SP)+,#02 -> L05
STORE L06,#00
L0012: JL L06,L04 [FALSE] L0017
STORE L08,#00
STORE L07,#00
L0013: JL L07,L05 [FALSE] L0015
LOADW L03,L07 -> -(SP)
LOADW L02,L06 -> -(SP)
JE (SP)+,(SP)+ [FALSE] L0014
STORE L08,#01
L0014: INC L07
JUMP L0013
L0015: JE L08,#00 [FALSE] L0016
RFALSE
L0016: INC L06
JUMP L0012
L0017: STORE L07,#00
L0018: JL L07,L05 [FALSE] L0023
STORE L08,#00
STORE L06,#00
L0019: JL L06,L04 [FALSE] L0021
LOADW L03,L07 -> -(SP)
LOADW L02,L06 -> -(SP)
JE (SP)+,(SP)+ [FALSE] L0020
STORE L08,#01
L0020: INC L06
JUMP L0019
L0021: JE L08,#00 [FALSE] L0022
RFALSE
L0022: INC L07
JUMP L0018
L0023: RTRUE
Routine R0014, 6 locals
JE L00,#00 [FALSE] L0005
STORE L02,G34
STORE L00,#01
STORE L05,#01
JE L02,"l" [FALSE] L0001
PRINT "look"
JUMP L0005
L0001: JE L02,"z" [FALSE] L0002
PRINT "wait"
JUMP L0005
L0002: JE L02,"x" [FALSE] L0003
PRINT "examine"
JUMP L0005
L0003: JE L02,"i","inv" [FALSE] L0004
PRINT "inventory"
JUMP L0005
L0004: CALL_2S R0333 (L02) -> -(SP)
JE (SP)+,#00 [FALSE] L0005
PRINT_ADDR L02
L0005: SUB G3b,L01 -> L03
STORE L04,L00
L0006: JG L04,L03 [TRUE] L0012
JE L05,#01 [FALSE] L0007
PRINT_CHAR ' '
L0007: LOADW G3a,L04 -> L02
JE L02,#00 [FALSE] L0008
PRINT "those things"
JUMP L0011
L0008: JE L02,#01 [FALSE] L0009
PRINT "that"
JUMP L0011
L0009: JL L02,#03e8 [TRUE] L0010
SUB L02,#03e8 -> -(SP)
CALL_2S R0030 ((SP)+) -> L02
PRINT_ADDR L02
JUMP L0011
L0010: CALL_2N R0063 (L02)
L0011: STORE L05,#01
INC L04
JUMP L0006
L0012: RTRUE
Routine R0015, 3 locals
STORE G43,G42
JE G6a,#00 [TRUE] L0001
STORE G6b,G6a
RET #12
L0001: DEC G32
CALL_1S R0031 -> L01
STORE L02,#03
JE L01,G4e [FALSE] L0002
STORE L02,#0d
L0002: GET_PARENT G1a -> L00
TEST_ATTR L00,#1c [FALSE] L0003
CALL_VS R0027 (L00,L01) -> -(SP)
JE (SP)+,#01 [FALSE] L0003
STORE L02,#0c
L0003: JG G60,L02 [FALSE] L0004
RET G60
L0004: RET L02
Routine R0016, 3 locals
LOADW G21,#00 -> L01
JE L01,#3f [FALSE] L0001
STORE G19,#01
RTRUE
L0001: STORE L02,#01
L0002: JG L02,L01 [TRUE] L0004
LOADW G21,L02 -> -(SP)
JE L00,(SP)+ [FALSE] L0003
RTRUE
L0003: INC L02
JUMP L0002
L0004: INC L01
STOREW G21,L01,L00
STOREW G21,#00,L01
RTRUE
Routine R0017, 5 locals
LOADW G21,#00 -> L01
STORE L04,#00
STORE L02,#01
L0001: JG L02,L01 [TRUE] L0005
LOADW G21,L02 -> -(SP)
JE L00,(SP)+ [FALSE] L0004
STORE L03,L02
L0002: JG L03,L01 [TRUE] L0003
ADD L03,#01 -> -(SP)
LOADW G21,(SP)+ -> -(SP)
STOREW G21,L03,(SP)+
INC L03
JUMP L0002
L0003: DEC L01
STOREW G21,#00,L01
RET L04
L0004: INC L02
JUMP L0001
L0005: STORE L04,#09
RET L04
Routine R0018, 4 locals
L0001: LOADW G21,#00 -> L01
STORE L02,#01
L0002: JG L02,L01 [TRUE] L0004
LOADW G21,L02 -> L03
TEST_ATTR L03,L00 [TRUE] L0003
CALL_2N R0017 (L03)
JUMP L0001
L0003: INC L02
JUMP L0002
L0004: RTRUE
Routine R0019, 1 local
JL G63,#80 [TRUE] L0002
SUB G63,#80 -> -(SP)
TEST_ATTR L00,(SP)+ [FALSE] L0001
RTRUE
L0001: RFALSE
L0002: STORE G1f,L00
SUB G63,#10 -> -(SP)
LOADW #3acb,(SP)+ -> -(SP)
CALL_VS (SP)+ -> -(SP)
RET (SP)+
Routine R0020, 5 locals
MUL L00,#02 -> -(SP)
SUB (SP)+,#01 -> L03
MUL L02,#02 -> -(SP)
SUB (SP)+,#01 -> L04
PUSH L04
INC L04
LOADW L01,(SP)+ -> -(SP)
PUSH L03
INC L03
STOREW G17,(SP)+,(SP)+
LOADW L01,L04 -> -(SP)
STOREW G17,L03,(SP)+
RTRUE
Routine R0021, 4 locals
STORE L03,#00
JE G6a,#00 [TRUE] L0001
STORE G6c,#02
CALL_VS G6a -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RTRUE
L0001: JE L00,G1a [FALSE] L0003
CALL_2S R0331 (L00) -> -(SP)
JE (SP)+,#00 [TRUE] L0002
RTRUE
L0002: JUMP L0004
L0003: JE L01,G1a [FALSE] L0004
CALL_2S R0331 (L01) -> -(SP)
JE (SP)+,#00 [TRUE] L0004
RTRUE
L0004: JE L02,#05 [FALSE] L0005
JE G64,#ffff [TRUE] L0005
CALL_VN R0024 (G64,#00,L02)
JUMP L0006
L0005: CALL_VN R0024 (L00,L01,L02)
CALL_VN R0024 (L01,#00,L02)
L0006: RTRUE
Routine R0022, 1 local
JE G69,#01 [FALSE] L0001
CALL_2N R0023 (L00)
RTRUE
L0001: STORE G32,G4a
CALL_2N R0026 (L00)
STORE G65,#01
RTRUE
Routine R0023, 2 locals
JL G2d,#05 [TRUE] L0001
PRINT "[Considering each_turn for "
CALL_2N R0063 (L00)
PRINT "]
"
L0001: GET_PROP L00,#1b -> L01
JE L01,#00 [FALSE] L0002
RTRUE
L0002: SUB L01,#411c -> -(SP)
JL (SP)+,#00 [TRUE] L0003
PRINT_PADDR L01
NEW_LINE
RTRUE
L0003: CALL_VN R0039 (L00,#1b)
RTRUE
Routine R0024, 4 locals
JE L00,#00 [FALSE] L0001
RTRUE
L0001: JE L02,#04 [FALSE] L0002
JE L00,G64 [FALSE] L0002
RTRUE
L0002: JE G54,#00 [FALSE] L0003
JE L00,G00 [FALSE] L0003
JE G69,#00 [FALSE] L0003
CALL_2N R0024 (#01)
L0003: GET_CHILD L00 -> L00 [TRUE] L0004
L0004: JE L00,#00 [TRUE] L0016
JE G69,#01 [FALSE] L0005
CALL_2N R0023 (L00)
JUMP L0011
L0005: JG G4a,G33 [FALSE] L0006
CALL_VN R0025 (L00,#01)
JUMP L0011
L0006: STORE G32,G4a
CALL_1S R0028 -> L03
JE L03,#01 [FALSE] L0007
JE G50,L00 [FALSE] L0007
CALL_VN R0025 (G50,#01)
L0007: JE L03,#02 [FALSE] L0008
JE G51,L00 [FALSE] L0008
CALL_VN R0025 (G51,#01)
L0008: JE L03,#03 [FALSE] L0009
JE G52,L00 [FALSE] L0009
CALL_VN R0025 (G52,#01)
L0009: JE L03,#04 [FALSE] L0010
JE G08,L00 [FALSE] L0010
CALL_VN R0025 (G08,#01)
L0010: DEC G32
CALL_2N R0026 (L00)
L0011: GET_CHILD L00 -> -(SP) [TRUE] L0012
L0012: JE (SP)+,#00 [TRUE] L0014
JE L00,L01 [TRUE] L0014
TEST_ATTR L00,#18 [TRUE] L0013
TEST_ATTR L00,#1b [TRUE] L0013
TEST_ATTR L00,#06 [FALSE] L0014
TEST_ATTR L00,#12 [FALSE] L0014
L0013: CALL_VN R0024 (L00,#00,L02)
L0014: GET_SIBLING L00 -> L00 [TRUE] L0015
L0015: JUMP L0004
L0016: RTRUE
Routine R0025, 3 locals
JL G2d,#05 [TRUE] L0001
PRINT " Match with quality "
PRINT_NUM L01
PRINT "
"
L0001: JE G63,#00 [TRUE] L0003
CALL_2S R0019 (L00) -> -(SP)
JE (SP)+,#00 [FALSE] L0003
JL G2d,#05 [TRUE] L0002
PRINT " Match filtered out
"
L0002: RTRUE
L0003: JL L01,G49 [FALSE] L0004
RTRUE
L0004: JG L01,G49 [FALSE] L0005
STORE G49,L01
STORE G47,#00
JUMP L0008
L0005: JE G65,#01 [FALSE] L0008
STORE L02,#00
L0006: JL L02,G47 [FALSE] L0008
LOADW G45,L02 -> -(SP)
JE (SP)+,L00 [FALSE] L0007
RTRUE
L0007: INC L02
JUMP L0006
L0008: PUSH G47
INC G47
STOREW G45,(SP)+,L00
JL G2d,#05 [TRUE] L0009
PRINT " Match added to list
"
L0009: RTRUE
Routine R0026, 3 locals
JL G2d,#05 [TRUE] L0001
PRINT " Trying "
CALL_2N R0063 (L00)
PRINT " ("
PRINT_NUM L00
PRINT ") at word "
PRINT_NUM G32
PRINT "
"
L0001: JE G54,#00 [TRUE] L0002
LOADB G17,#01 -> -(SP)
JG G32,(SP)+ [FALSE] L0002
CALL_VN R0025 (L00,#00)
RFALSE
L0002: GET_PROP L00,#1e -> -(SP)
JE (SP)+,#00 [TRUE] L0007
STORE G4b,#ffff
CALL_VS R0039 (L00,#1e) -> L02
JG L02,#00 [FALSE] L0006
JE G4b,#fb [FALSE] L0005
JE G58,#00 [FALSE] L0003
JUMP L0008
L0003: JE G54,#00 [FALSE] L0004
STORE G54,#01
STORE G55,#00
STORE G56,#00
L0004: OR G55,#08 -> G55
JE G56,#00 [FALSE] L0005
STORE G56,#64
L0005: CALL_VN R0025 (L00,L02)
RFALSE
L0006: JE L02,#00 [FALSE] L0007
JUMP L0008
L0007: CALL_1S R0028 -> -(SP)
CALL_VS R0027 (L00,(SP)+) -> -(SP)
JE #00,(SP)+ [FALSE] L0010
L0008: JE G54,#00 [TRUE] L0009
CALL_VN R0025 (L00,#00)
L0009: RFALSE
L0010: STORE L01,#01
L0011: CALL_1S R0031 -> -(SP)
CALL_VS R0027 (L00,(SP)+) -> -(SP)
JE #00,(SP)+ [TRUE] L0012
INC L01
JUMP L0011
L0012: CALL_VN R0025 (L00,L01)
JL G2d,#05 [TRUE] L0013
PRINT " Matched
"
L0013: RTRUE
Routine R0027, 5 locals
JE L00,#00 [FALSE] L0001
RFALSE
L0001: GET_PROP_ADDR L00,#01 -> L02
GET_PROP_ADDR L00,#01 -> -(SP)
STORE Gef,(SP)+
JZ Gef [TRUE] L0002
GET_PROP_LEN Gef -> Gef
L0002: PUSH Gef
DIV (SP)+,#02 -> -(SP)
SUB (SP)+,#01 -> L03
STORE L04,#00
L0003: JG L04,L03 [TRUE] L0005
LOADW L02,L04 -> -(SP)
JE L01,(SP)+ [FALSE] L0004
RTRUE
L0004: INC L04
JUMP L0003
L0005: RFALSE
Routine R0028, 1 local
CALL_1S R0031 -> L00
JE L00,S127 OR "it","them" [FALSE] L0001
RET #01
L0001: JE L00,"him" [FALSE] L0002
RET #02
L0002: JE L00,"her" [FALSE] L0003
RET #03
L0003: JE L00,"me","myself","self" [FALSE] L0004
RET #04
L0004: JE L00,#00 [FALSE] L0005
RFALSE
L0005: LOADB L00,#06 -> -(SP)
AND (SP)+,#80 -> -(SP)
JE (SP)+,#00 [FALSE] L0006
RFALSE
L0006: RET L00
Routine R0029, 2 locals
CALL_1S R0031 -> L01
JE L01,#00 [FALSE] L0001
RFALSE
L0001: LOADB L01,#06 -> L00
AND L00,#08 -> -(SP)
JE (SP)+,#00 [FALSE] L0002
RFALSE
L0002: LOADB L01,#08 -> -(SP)
RET (SP)+
Routine R0030, 2 locals
STORE L01,#3bb3
L0001: JE #01,#01 [FALSE] L0003
LOADW L01,#01 -> -(SP)
JE L00,(SP)+ [FALSE] L0002
LOADW L01,#00 -> -(SP)
RET (SP)+
L0002: ADD L01,#04 -> L01
JUMP L0001
L0003: STORE L01,#3bb3
PRINT "<Adjective not found>"
RET L01
Routine R0031, 3 locals
LOADB G17,#01 -> -(SP)
JG G32,(SP)+ [FALSE] L0001
INC G32
RFALSE
L0001: MUL G32,#02 -> -(SP)
SUB (SP)+,#01 -> L00
INC G32
LOADW G17,L00 -> L01
JE L01,#00 [FALSE] L0003
MUL G32,#04 -> -(SP)
SUB (SP)+,#03 -> L02
LOADB G17,L02 -> -(SP)
LOADB G16,(SP)+ -> L00
JE L00,#2c [FALSE] L0002
STORE L01,"xcomma"
L0002: JE L00,#2e [FALSE] L0003
STORE L01,"then"
L0003: RET L01
Routine R0032, 10 locals
STORE L01,G32
STORE G32,L00
CALL_1S R0031 -> L02
STORE G32,L01
CALL_2S R0005 (L02) -> L02
JL L02,#01 [TRUE] L0001
RET L02
L0001: MUL L00,#04 -> -(SP)
ADD (SP)+,#01 -> L01
LOADB G17,L01 -> L02
ADD L02,G16 -> L04
SUB L01,#01 -> -(SP)
LOADB G17,(SP)+ -> L05
CALL_VS R0335 (L04,L05) -> L07
JE L07,#00 [TRUE] L0002
RET L07
L0002: JL L05,#04 [TRUE] L0003
STORE L06,#03e8
L0003: JE L05,#03 [FALSE] L0004
STORE L06,#64
L0004: JE L05,#02 [FALSE] L0005
STORE L06,#0a
L0005: JE L05,#01 [FALSE] L0006
STORE L06,#01
L0006: STORE L07,#00
STORE L03,#00
SUB L05,#01 -> L05
STORE L03,#00
L0007: JG L03,L05 [TRUE] L0019
LOADB L04,L03 -> L09
JE L09,#30 [FALSE] L0008
STORE L08,#00
JUMP L0018
L0008: JE L09,#31 [FALSE] L0009
STORE L08,#01
JUMP L0018
L0009: JE L09,#32 [FALSE] L0010
STORE L08,#02
JUMP L0018
L0010: JE L09,#33 [FALSE] L0011
STORE L08,#03
JUMP L0018
L0011: JE L09,#34 [FALSE] L0012
STORE L08,#04
JUMP L0018
L0012: JE L09,#35 [FALSE] L0013
STORE L08,#05
JUMP L0018
L0013: JE L09,#36 [FALSE] L0014
STORE L08,#06
JUMP L0018
L0014: JE L09,#37 [FALSE] L0015
STORE L08,#07
JUMP L0018
L0015: JE L09,#38 [FALSE] L0016
STORE L08,#08
JUMP L0018
L0016: JE L09,#39 [FALSE] L0017
STORE L08,#09
JUMP L0018
L0017: RET #fc18
L0018: MUL L06,L08 -> -(SP)
ADD L07,(SP)+ -> L07
DIV L06,#0a -> L06
INC L03
JUMP L0007
L0019: JG L05,#03 [FALSE] L0020
STORE L07,#2710
L0020: RET L07
Routine R0033, 1 local
TEST_ATTR L00,#03 [FALSE] L0003
CALL_2S R0034 (L00) -> -(SP)
JE (SP)+,#01 [FALSE] L0001
STORE G51,L00
JUMP L0002
L0001: STORE G52,L00
L0002: JUMP L0004
L0003: STORE G50,L00
L0004: RTRUE
Routine R0034, 1 local
TEST_ATTR L00,#0b [TRUE] L0001
RTRUE
L0001: RFALSE
Routine R0035, 4 locals
LOADB L00,#00 -> L03
STORE L02,#01
L0001: JG L02,L03 [TRUE] L0002
LOADB L01,L02 -> -(SP)
STOREB L00,L02,(SP)+
INC L02
JUMP L0001
L0002: RTRUE
Routine R0036, 0 locals
JE G03,#ffff [FALSE] L0001
STORE G01,G06
STORE G02,G07
JUMP L0002
L0001: DIV G03,#3c -> G01
MOD G03,#3c -> G02
L0002: RTRUE
Routine R0037, 2 locals
STORE G03,L00
STORE G04,L01
STORE G05,#00
JL L01,#00 [FALSE] L0001
SUB #00,L01 -> G05
L0001: RTRUE
Routine R0038, 5 locals
SUB #0201,#ff -> G15
CALL_1N R0296
STORE G0f,G06
INSERT_OBJ G08,G00
L0001: GET_PARENT G00 -> -(SP)
JE (SP)+,#00 [TRUE] L0002
GET_PARENT G00 -> G00
JUMP L0001
L0002: GET_CHILD G08 -> L00 [TRUE] L0003
L0003: JE L00,#00 [TRUE] L0005
SET_ATTR L00,#10
GET_SIBLING L00 -> L00 [TRUE] L0004
L0004: JUMP L0003
L0005: PUT_PROP G08,#1c,#07
CALL_1N R0045
CALL_1N R0119
STORE L00,#01
L0006: JG L00,#64 [TRUE] L0007
RANDOM L00 -> L01
INC L00
JUMP L0006
L0007: JE G0c,#00 [FALSE] L0030
JE G06,G0f [TRUE] L0012
JE G10,#01 [FALSE] L0011
PRINT "
[Your score has just gone "
JG G0f,G06 [FALSE] L0008
SUB G0f,G06 -> L00
PRINT "down"
JUMP L0009
L0008: SUB G06,G0f -> L00
PRINT "up"
L0009: PRINT " by "
CALL_2N R0066 (L00)
PRINT " point"
JG L00,#01 [FALSE] L0010
PRINT "s"
L0010: PRINT ".]
"
L0011: STORE G0f,G06
L0012: STORE G1c,#00
STORE G1d,#00
STORE G1b,#00
STORE G29,#00
CALL_2N R0004 (G18)
STORE G28,G27
STORE G27,#00
JE G1a,G08 [TRUE] L0015
LOADW G18,#00 -> G1b
LOADW G18,#02 -> G1c
LOADW G18,#03 -> G1d
JE G1b,#1f [FALSE] L0013
LOADW G18,#02 -> G1d
LOADW G18,#03 -> G1c
STORE G1b,#20
L0013: CALL_VS R0042 (G1a,#fd) -> -(SP)
JE (SP)+,#00 [FALSE] L0014
CALL_2N R0064 (G1a)
PRINT " has better things to do.
"
L0014: JUMP L0027
L0015: JE G19,#01 [FALSE] L0016
STORE G19,#00
PRINT "(considering the first sixteen objects only)
"
L0016: STORE L04,#00
JE G1b,#00 [TRUE] L0017
STORE L04,#01
L0017: JE G1b,#00 [FALSE] L0018
LOADW G18,#00 -> G1b
L0018: JE L04,#00 [FALSE] L0019
LOADW G18,#01 -> L00
LOADW G18,#02 -> G1c
LOADW G18,#03 -> G1d
JUMP L0020
L0019: STORE L00,#02
L0020: JE L00,#00 [FALSE] L0021
STORE G1c,#00
STORE G1d,#00
L0021: JE L00,#01 [FALSE] L0022
STORE G1d,#00
L0022: STORE G26,#00
JE L00,#00 [FALSE] L0023
CALL_VN R0041 (#00,#00,G1b)
JUMP L0027
L0023: JE G1c,#00 [TRUE] L0024
CALL_VN R0041 (G1c,G1d,G1b)
JUMP L0027
L0024: STORE G26,#01
LOADW G21,#00 -> L01
JE L01,#00 [FALSE] L0025
PRINT "Nothing to do!
"
JUMP L0012
L0025: STORE L02,#01
L0026: JG L02,L01 [TRUE] L0027
LOADW G21,L02 -> L03
CALL_2N R0065 (L03)
PRINT ": "
CALL_VN R0041 (L03,G1d,G1b)
INC L02
JUMP L0026
L0027: JE G27,#01 [FALSE] L0028
STORE G29,#01
L0028: JE G0c,#00 [FALSE] L0029
JE G29,#00 [FALSE] L0029
CALL_1N R0055
L0029: JUMP L0007
L0030: JE G0c,#02 [TRUE] L0031
CALL_1N R0323
L0031: JE G0c,#00 [FALSE] L0032
JUMP L0012
L0032: PRINT "
***"
JE G0c,#01 [FALSE] L0033
PRINT " You have died "
L0033: JE G0c,#02 [FALSE] L0034
PRINT " You have won "
L0034: JG G0c,#02 [FALSE] L0035
PRINT " "
CALL_1N R0325
PRINT " "
L0035: PRINT "***
"
CALL_1N R0088
CALL_1N R0036
L0036: PRINT "
Would you like to RESTART, RESTORE a saved game"
JE #0001,#00 [FALSE] L0037
PRINT ", give the FULL score for that game"
L0037: JE G0c,#02 [FALSE] L0038
JE #00,#00 [FALSE] L0038
PRINT ", see some suggestions for AMUSING things to do"
L0038: PRINT " or QUIT?
"
L0039: PRINT "> "
STOREB G16,#01,#00
CALL_1N R0002
READ G16,G17 -> Gef
LOADW G17,#01 -> L00
JE L00,"quit","q" [FALSE] L0040
QUIT
L0040: JE L00,"restart" [FALSE] L0041
RESTART
L0041: JE L00,"restore" [FALSE] L0042
CALL_1N R0081
JUMP L0036
L0042: JE L00,"fullscore","full" [FALSE] L0043
JE #0001,#00 [FALSE] L0043
NEW_LINE
CALL_1N R0091
JUMP L0036
L0043: JE G0c,#02 [FALSE] L0044
JE L00,"amusing" [FALSE] L0044
JE #00,#00 [FALSE] L0044
NEW_LINE
CALL_1N R0302
JUMP L0036
L0044: JE L00,"undo" [FALSE] L0049
JE G2c,#00 [FALSE] L0045
PRINT "[Your interpreter does not provide "undo". Sorry!]
"
JUMP L0036
L0045: JE G2c,#01 [FALSE] L0046
JUMP L0047
L0046: RESTORE_UNDO -> L00
JE L00,#00 [FALSE] L0048
L0047: PRINT ""Undo" failed. [Not all interpreters provide it.]
"
L0048: JUMP L0036
L0049: PRINT "Please give one of the answers above.
"
JUMP L0039
Routine R0039, 7 locals
JE L00,#0e [FALSE] L0001
STORE L00,G0a
L0001: GET_PROP L00,L01 -> -(SP)
JE (SP)+,#ffff [FALSE] L0002
RFALSE
L0002: GET_PROP_ADDR L00,L01 -> L03
GET_PROP_ADDR L00,L01 -> -(SP)
STORE Gef,(SP)+
JZ Gef [TRUE] L0003
GET_PROP_LEN Gef -> Gef
L0003: STORE L04,Gef
STORE L06,G1e
STORE G1e,L00
STORE G1f,G1c
STORE G20,G1d
JE L01,#05 [FALSE] L0004
STORE G2b,G2a
JUMP L0005
L0004: STORE G2b,G1b
L0005: STORE L02,#00
L0006: DIV L04,#02 -> -(SP)
JL L02,(SP)+ [FALSE] L0008
LOADW L03,L02 -> -(SP)
CALL_VS (SP)+ -> L05
JE L05,#00 [TRUE] L0007
STORE G1e,L06
RET L05
L0007: INC L02
JUMP L0006
L0008: STORE G1e,L06
RFALSE
Routine R0040, 7 locals
STORE L03,G1c
STORE L04,G1d
STORE L05,G1b
STORE L06,G1e
STORE G1c,L01
STORE G1d,L02
STORE G1f,L01
STORE G20,L02
STORE G1b,L00
JE G29,#01 [TRUE] L0004
CALL_1S R0328 -> -(SP)
JE (SP)+,#00 [TRUE] L0001
JUMP L0005
L0001: CALL_VS R0039 (G08,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0002
JUMP L0005
L0002: JE G00,#00 [TRUE] L0003
CALL_VS R0039 (G00,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0003
JUMP L0005
L0003: JG G1c,#01 [FALSE] L0004
CALL_VS R0039 (G1c,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0004
JUMP L0005
L0004: LOADW #39e5,G1b -> -(SP)
CALL_VS (SP)+ -> Gef
STORE G1e,L06
STORE G1c,L03
STORE G1f,L03
STORE G1d,L04
STORE G20,L04
STORE G1b,L05
RFALSE
L0005: STORE G1e,L06
STORE G1c,L03
STORE G1f,L03
STORE G1d,L04
STORE G20,L04
STORE G1b,L05
RTRUE
Routine R0041, 3 locals
STORE G1c,L00
STORE G1d,L01
STORE G1f,L00
STORE G20,L01
STORE G1b,L02
JE G1c,#01 [FALSE] L0002
STORE G1f,G23
L0002: JE G1d,#01 [FALSE] L0004
JE G1c,#01 [FALSE] L0003
STORE G20,G24
JUMP L0004
L0003: STORE G20,G23
L0004: JE G29,#01 [TRUE] L0008
CALL_1S R0328 -> -(SP)
JE (SP)+,#00 [TRUE] L0005
RTRUE
L0005: CALL_VS R0039 (G08,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0006
JUMP L0001
L0006: JE G00,#00 [TRUE] L0007
CALL_VS R0039 (G00,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0007
RTRUE
L0007: JG G1c,#01 [FALSE] L0008
CALL_VS R0039 (G1c,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0008
RTRUE
L0008: LOADW #39e5,G1b -> -(SP)
CALL_VS (SP)+ -> Gef
RTRUE
Routine R0042, 2 locals
STORE G2a,L01
CALL_VS R0039 (L00,#05) -> -(SP)
RET (SP)+
Routine R0043, 0 locals
CALL_VS R0039 (G08,#04) -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RTRUE
L0001: JE G00,#00 [TRUE] L0002
CALL_VS R0039 (G00,#04) -> -(SP)
JE (SP)+,#00 [TRUE] L0002
RTRUE
L0002: JG G1c,#01 [FALSE] L0003
CALL_VS R0039 (G1c,#04) -> -(SP)
JE (SP)+,#00 [TRUE] L0003
RTRUE
L0003: CALL_1S R0329 -> -(SP)
RET (SP)+
Routine R0044, 0 locals
JE G00,#00 [TRUE] L0001
CALL_VS R0039 (G00,#04) -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RTRUE
L0001: CALL_1S R0329 -> -(SP)
RET (SP)+
Routine R0045, 1 local
SET_TEXT_STYLE BOLDFACE
PRINT_PADDR S001
SET_TEXT_STYLE ROMAN
PRINT_PADDR S002
PRINT "Release "
LOADW #00,#01 -> -(SP)
AND (SP)+,#03ff -> -(SP)
PRINT_NUM (SP)+
PRINT " / Serial number "
STORE L00,#12
L0001: JL L00,#18 [FALSE] L0002
LOADB #00,L00 -> -(SP)
PRINT_CHAR (SP)+
INC L00
JUMP L0001
L0002: PRINT " / Interpreter "
LOADB #00,#1e -> -(SP)
PRINT_NUM (SP)+
PRINT " Version "
LOADB #00,#1f -> -(SP)
PRINT_CHAR (SP)+
PRINT "
(Compiled by Inform v"
PRINT "1403"
PRINT ")
"
RTRUE
Routine R0046, 0 locals
Action routine for:
"version"
CALL_1N R0045
PRINT "Library release "
PRINT_PADDR S004
PRINT " serial number "
PRINT_PADDR S003
NEW_LINE
RTRUE
Routine R0047, 6 locals
STORE G71,#00
CALL_VS L01 -> L03
STORE L04,G70
PRINT "--- "
PRINT_PADDR L04
PRINT " ---
"
PRINT_PADDR L00
L0001: PRINT "
Type a number from 1 to "
PRINT_NUM L03
PRINT " or press ENTER.
> "
STOREB G16,#01,#00
CALL_1N R0002
READ G16,G17 -> Gef
LOADW G17,#01 -> L05
JE L05,"quit","q" [TRUE] L0002
LOADB G17,#01 -> -(SP)
JE (SP)+,#00 [FALSE] L0004
L0002: JE G0c,#00 [FALSE] L0003
CALL_2N R0040 (#27)
RTRUE
L0003: RFALSE
L0004: CALL_2S R0032 (#01) -> L05
JL L05,#01 [TRUE] L0005
JG L05,L03 [FALSE] L0006
L0005: JUMP L0001
L0006: STORE G71,L05
CALL_VS L02 -> Gef
JUMP L0001
orphan code fragment:
RTRUE
Routine R0048, 11 locals
JE G6e,#00 [FALSE] L0001
CALL_VN R0047 (L00,L01,L02)
RFALSE
L0001: INC G73
STORE G71,#00
CALL_VS L01 -> L03
STORE L04,G70
STORE L05,G6f
STORE L06,#07
L0002: STORE L09,#00
ERASE_WINDOW #ffff
ADD L03,#07 -> L07
SPLIT_WINDOW L07
LOADB #00,#21 -> L07
JE L07,#00 [FALSE] L0003
STORE L07,#50
L0003: SET_WINDOW #01
SET_CURSOR #01,#01
SET_TEXT_STYLE REVERSE
STORE Gef,L07
JL Gef,#01 [TRUE] L0005
L0004: PRINT_CHAR ' '
SUB Gef,#01 -> Gef
JE Gef,#00 [FALSE] L0004
L0005: DIV L07,#02 -> -(SP)
SUB (SP)+,L05 -> L08
SET_CURSOR #01,L08
PRINT_PADDR L04
SET_CURSOR #02,#01
STORE Gef,L07
JL Gef,#01 [TRUE] L0007
L0006: PRINT_CHAR ' '
SUB Gef,#01 -> Gef
JE Gef,#00 [FALSE] L0006
L0007: SET_CURSOR #02,#02
PRINT "N = next subject"
SUB L07,#0c -> L08
SET_CURSOR #02,L08
PRINT "P = previous"
SET_CURSOR #03,#01
STORE Gef,L07
JL Gef,#01 [TRUE] L0009
L0008: PRINT_CHAR ' '
SUB Gef,#01 -> Gef
JE Gef,#00 [FALSE] L0008
L0009: SET_CURSOR #03,#02
PRINT "RETURN = read subject"
SUB L07,#11 -> L08
SET_CURSOR #03,L08
JE G73,#01 [FALSE] L0010
PRINT " Q = resume game"
JUMP L0011
L0010: PRINT "Q = previous menu"
L0011: SET_TEXT_STYLE ROMAN
SET_CURSOR #05,#02
LOADW #00,#08 -> -(SP)
OR #02,(SP)+ -> -(SP)
STOREW #00,#08,(SP)+
PRINT_PADDR L00
L0012: JE L06,L09 [TRUE] L0014
JG L09,#00 [FALSE] L0013
SET_CURSOR L09,#04
PRINT " "
L0013: SET_CURSOR L06,#04
PRINT ">"
L0014: STORE L09,L06
READ_CHAR #01,#00,#00 -> L0a
JE L0a,#4e,#6e,#82 [FALSE] L0016
INC L06
ADD #07,L03 -> -(SP)
JE L06,(SP)+ [FALSE] L0015
STORE L06,#07
L0015: JUMP L0012
L0016: JE L0a,#50,#70,#81 [FALSE] L0018
DEC L06
JE L06,#06 [FALSE] L0017
ADD #06,L03 -> L06
L0017: JUMP L0012
L0018: JE L0a,#51,#71,#1b [FALSE] L0019
JUMP L0025
L0019: JE L0a,#0a,#0d [FALSE] L0024
SET_WINDOW #00
LOADW #00,#08 -> -(SP)
AND #fffd,(SP)+ -> -(SP)
STOREW #00,#08,(SP)+
NEW_LINE
NEW_LINE
NEW_LINE
SUB L06,#06 -> G71
CALL_VS L01 -> Gef
ERASE_WINDOW #ffff
SPLIT_WINDOW #01
LOADB #00,#21 -> L07
JE L07,#00 [FALSE] L0020
STORE L07,#50
L0020: SET_WINDOW #01
SET_CURSOR #01,#01
SET_TEXT_STYLE REVERSE
STORE Gef,L07
JL Gef,#01 [TRUE] L0022
L0021: PRINT_CHAR ' '
SUB Gef,#01 -> Gef
JE Gef,#00 [FALSE] L0021
L0022: DIV L07,#02 -> -(SP)
SUB (SP)+,G6f -> L08
SET_CURSOR #01,L08
PRINT_PADDR G70
SET_TEXT_STYLE ROMAN
SET_WINDOW #00
NEW_LINE
CALL_VS L02 -> -(SP)
JE (SP)+,#02 [FALSE] L0023
JUMP L0002
L0023: PRINT "
[Please press SPACE.]
"
READ_CHAR #01,#00,#00 -> L0a
JUMP L0002
L0024: JUMP L0012
L0025: DEC G73
JG G73,#00 [FALSE] L0026
RFALSE
L0026: LOADW #00,#08 -> -(SP)
AND #fffd,(SP)+ -> -(SP)
STOREW #00,#08,(SP)+
SET_CURSOR #01,#01
ERASE_WINDOW #ffff
SET_WINDOW #00
NEW_LINE
NEW_LINE
NEW_LINE
JE G0c,#00 [FALSE] L0027
CALL_2N R0040 (#27)
RTRUE
L0027: RTRUE
Routine R0049, 0 locals
PRINT_RET "** Too many timers/daemons! Increase MAX_TIMERS **"
Routine R0050, 1 local
PRINT "** Object "
CALL_2N R0065 (L00)
PRINT_RET " has no time_left property! **"
Routine R0051, 3 locals
STORE L02,#00
L0001: JL L02,G74 [FALSE] L0003
LOADB G75,L02 -> -(SP)
JE (SP)+,#00 [FALSE] L0002
JUMP L0004
L0002: INC L02
JUMP L0001
L0003: PUSH G74
INC G74
STORE L02,(SP)+
JE L02,#20 [FALSE] L0004
CALL_1N R0049
L0004: GET_PROP_ADDR L00,#18 -> -(SP)
JE (SP)+,#00 [FALSE] L0005
CALL_2N R0050 (L00)
L0005: STOREB G75,L02,L00
STOREB G76,L02,#01
PUT_PROP L00,#18,L01
RTRUE
Routine R0052, 2 locals
STORE L01,#00
L0001: JL L01,G74 [FALSE] L0003
LOADB G75,L01 -> -(SP)
JE (SP)+,L00 [FALSE] L0002
JUMP L0004
L0002: INC L01
JUMP L0001
L0003: RFALSE
L0004: GET_PROP_ADDR L00,#18 -> -(SP)
JE (SP)+,#00 [FALSE] L0005
CALL_2N R0050 (L00)
L0005: STOREB G75,L01,#00
PUT_PROP L00,#18,#00
RTRUE
Routine R0053, 2 locals
STORE L01,#00
L0001: JL L01,G74 [FALSE] L0003
LOADB G75,L01 -> -(SP)
JE (SP)+,#00 [FALSE] L0002
JUMP L0004
L0002: INC L01
JUMP L0001
L0003: PUSH G74
INC G74
STORE L01,(SP)+
JE L01,#20 [FALSE] L0004
CALL_1N R0049
L0004: STOREB G75,L01,L00
STOREB G76,L01,#02
RTRUE
Routine R0054, 2 locals
STORE L01,#00
L0001: JL L01,G74 [FALSE] L0003
LOADB G75,L01 -> -(SP)
JE (SP)+,L00 [FALSE] L0002
JUMP L0004
L0002: INC L01
JUMP L0001
L0003: RFALSE
L0004: STOREB G75,L01,#00
RTRUE
Routine R0055, 2 locals
INC G07
JE G03,#ffff [TRUE] L0003
JL G04,#00 [TRUE] L0001
ADD G03,G04 -> G03
JUMP L0002
L0001: DEC G05
JE G05,#00 [FALSE] L0002
INC G03
SUB #00,G04 -> G05
L0002: MOD G03,#05a0 -> G03
L0003: STORE L00,#00
L0004: JE G0c,#00 [FALSE] L0008
JL L00,G74 [FALSE] L0008
LOADB G75,L00 -> L01
JE L01,#00 [TRUE] L0007
LOADB G76,L00 -> -(SP)
JE (SP)+,#02 [FALSE] L0005
CALL_VN R0039 (L01,#1a)
JUMP L0007
L0005: GET_PROP L01,#18 -> -(SP)
JE (SP)+,#00 [FALSE] L0006
CALL_2N R0052 (L01)
CALL_VN R0039 (L01,#1a)
JUMP L0007
L0006: GET_PROP L01,#18 -> -(SP)
SUB (SP)+,#01 -> -(SP)
PUT_PROP L01,#18,(SP)+
L0007: INC L00
JUMP L0004
L0008: JE G0c,#00 [FALSE] L0009
STORE G69,#01
STORE G34,#00
CALL_2N R0023 (G00)
CALL_VN R0021 (G00,G08,#00)
STORE G69,#00
L0009: JE G0c,#00 [FALSE] L0010
CALL_1N R0324
L0010: JE G0c,#00 [FALSE] L0014
CALL_1N R0056
GET_CHILD G08 -> L00 [TRUE] L0011
L0011: JE L00,#00 [TRUE] L0014
TEST_ATTR L00,#10 [TRUE] L0012
SET_ATTR L00,#10
TEST_ATTR G1f,#16 [FALSE] L0012
ADD G06,#0004 -> G06
ADD G12,#0004 -> G12
L0012: GET_SIBLING L00 -> L00 [TRUE] L0013
L0013: JUMP L0011
L0014: RTRUE
Routine R0056, 2 locals
STORE L01,G09
GET_PARENT G08 -> -(SP)
CALL_2S R0057 ((SP)+) -> G09
JE L01,#00 [FALSE] L0001
JE G09,#01 [FALSE] L0001
STORE G00,G0a
JE L00,#00 [FALSE] L0001
NEW_LINE
CALL_2N R0040 (#27)
L0001: JE L01,#01 [FALSE] L0002
JE G09,#00 [FALSE] L0002
STORE G0a,G00
STORE G00,#0e
JE L00,#00 [FALSE] L0002
PRINT_RET "
It is now pitch dark in here!"
L0002: RTRUE
Routine R0057, 2 locals
JE L00,#00 [FALSE] L0001
RFALSE
L0001: TEST_ATTR L00,#0d [FALSE] L0002
RTRUE
L0002: GET_CHILD L00 -> L01 [TRUE] L0003
L0003: JE L01,#00 [TRUE] L0006
CALL_2S R0058 (L01) -> -(SP)
JE (SP)+,#01 [FALSE] L0004
RTRUE
L0004: GET_SIBLING L01 -> L01 [TRUE] L0005
L0005: JUMP L0003
L0006: TEST_ATTR L00,#18 [TRUE] L0007
TEST_ATTR L00,#1b [TRUE] L0007
TEST_ATTR L00,#0a [TRUE] L0007
TEST_ATTR L00,#06 [FALSE] L0008
TEST_ATTR L00,#12 [FALSE] L0008
L0007: GET_PARENT L00 -> -(SP)
CALL_2S R0057 ((SP)+) -> -(SP)
RET (SP)+
L0008: RFALSE
Routine R0058, 1 local
JE L00,#00 [FALSE] L0001
RFALSE
L0001: TEST_ATTR L00,#0d [FALSE] L0002
RTRUE
L0002: TEST_ATTR L00,#18 [TRUE] L0003
TEST_ATTR L00,#1b [TRUE] L0003
TEST_ATTR L00,#0a [TRUE] L0003
TEST_ATTR L00,#06 [FALSE] L0007
TEST_ATTR L00,#12 [FALSE] L0007
L0003: GET_CHILD L00 -> L00 [TRUE] L0004
L0004: JE L00,#00 [TRUE] L0007
CALL_2S R0058 (L00) -> -(SP)
JE (SP)+,#01 [FALSE] L0005
RTRUE
L0005: GET_SIBLING L00 -> L00 [TRUE] L0006
L0006: JUMP L0004
L0007: RFALSE
Routine R0059, 1 local
JE L00,#00 [FALSE] L0001
PRINT "is unset"
JUMP L0002
L0001: PRINT "means "
CALL_2N R0063 (L00)
L0002: RTRUE
Routine R0060, 0 locals
Action routine for:
"nouns"
PRINT "At the moment, "it" "
CALL_2N R0059 (G50)
PRINT ", "him" "
CALL_2N R0059 (G51)
JE G08,#0f [FALSE] L0001
PRINT " and"
JUMP L0002
L0001: PRINT ","
L0002: PRINT " "her" "
CALL_2N R0059 (G52)
JE G08,#0f [FALSE] L0003
PRINT_RET "."
L0003: PRINT " and "me" means "
PRINT_OBJ G08
PRINT_RET "."
Routine R0061, 3 locals
GET_PROP_ADDR L00,#19 -> -(SP)
JE (SP)+,#00 [FALSE] L0001
PRINT_RET "** Player obj must have number prop **"
L0001: CLEAR_ATTR G08,#1b
CLEAR_ATTR G08,#05
PUT_PROP G08,#19,G0a
STORE G08,L00
SET_ATTR G08,#1b
SET_ATTR G08,#05
SET_ATTR G08,#03
SET_ATTR G08,#14
STORE L02,G08
L0002: GET_PARENT L02 -> -(SP)
JE (SP)+,#00 [TRUE] L0003
GET_PARENT L02 -> L02
JUMP L0002
L0003: STORE G00,L02
GET_PROP G08,#19 -> G0a
JE G0a,#00 [FALSE] L0004
STORE G0a,G00
L0004: GET_PARENT G08 -> -(SP)
CALL_2S R0057 ((SP)+) -> G09
JE G09,#00 [FALSE] L0005
STORE G00,#0e
L0005: STORE G0b,L01
RTRUE
Routine R0062, 1 local
TEST_ATTR L00,#14 [TRUE] L0001
GET_PROP L00,#15 -> -(SP)
PRINT_PADDR (SP)+
PRINT " "
L0001: CALL_2N R0065 (L00)
RTRUE
Routine R0063, 1 local
TEST_ATTR L00,#14 [TRUE] L0001
PRINT "the "
L0001: CALL_2N R0065 (L00)
RTRUE
Routine R0064, 1 local
TEST_ATTR L00,#14 [TRUE] L0001
PRINT "The "
L0001: CALL_2N R0065 (L00)
RTRUE
Routine R0065, 2 locals
JE L00,#00 [FALSE] L0001
PRINT "nothing"
RTRUE
L0001: JG L00,G15 [FALSE] L0002
PRINT "<no such object>"
RTRUE
L0002: JE L00,G08 [FALSE] L0003
PRINT "yourself"
RTRUE
L0003: GET_PROP L00,#1d -> L01
SUB L01,#411c -> -(SP)
JL (SP)+,#00 [TRUE] L0004
PRINT_PADDR L01
RTRUE
L0004: CALL_VS R0039 (L00,#1d) -> -(SP)
JE (SP)+,#00 [TRUE] L0005
RTRUE
L0005: PRINT_OBJ L00
RTRUE
Routine R0066, 2 locals
JE L00,#00 [FALSE] L0001
PRINT "zero"
RFALSE
L0001: JL L00,#00 [FALSE] L0002
PRINT "minus "
SUB #00,L00 -> L00
L0002: JL L00,#64 [TRUE] L0004
DIV L00,#64 -> -(SP)
CALL_2N R0066 ((SP)+)
MOD L00,#64 -> L00
JE L00,#00 [FALSE] L0003
RFALSE
L0003: PRINT " and "
L0004: JL L00,#0a [FALSE] L0005
CALL_2N R0067 (L00)
RFALSE
L0005: JL L00,#14 [TRUE] L0015
DIV L00,#0a -> L01
JE L01,#02 [FALSE] L0006
PRINT "twenty"
L0006: JE L01,#03 [FALSE] L0007
PRINT "thirty"
L0007: JE L01,#04 [FALSE] L0008
PRINT "fourty"
L0008: JE L01,#05 [FALSE] L0009
PRINT "fifty"
L0009: JE L01,#06 [FALSE] L0010
PRINT "sixty"
L0010: JE L01,#07 [FALSE] L0011
PRINT "seventy"
L0011: JE L01,#08 [FALSE] L0012
PRINT "eighty"
L0012: JE L01,#09 [FALSE] L0013
PRINT "ninety"
L0013: MOD L00,#0a -> -(SP)
JE (SP)+,#00 [FALSE] L0014
RFALSE
L0014: PRINT "-"
MOD L00,#0a -> -(SP)
CALL_2N R0067 ((SP)+)
RFALSE
L0015: JE L00,#0a [FALSE] L0016
PRINT "ten"
RFALSE
L0016: JE L00,#0b [FALSE] L0017
PRINT "eleven"
RFALSE
L0017: JE L00,#0c [FALSE] L0018
PRINT "twelve"
RFALSE
L0018: JE L00,#0d [FALSE] L0019
PRINT "thirteen"
RFALSE
L0019: JE L00,#0e [FALSE] L0020
PRINT "fourteen"
RFALSE
L0020: JE L00,#0f [FALSE] L0021
PRINT "fifteen"
RFALSE
L0021: JE L00,#10 [FALSE] L0022
PRINT "sixteen"
RFALSE
L0022: JE L00,#11 [FALSE] L0023
PRINT "seventeen"
RFALSE
L0023: JE L00,#12 [FALSE] L0024
PRINT "eighteen"
RFALSE
L0024: PRINT "nineteen"
RTRUE
Routine R0067, 1 local
JE L00,#01 [FALSE] L0001
PRINT "one"
RFALSE
L0001: JE L00,#02 [FALSE] L0002
PRINT "two"
RFALSE
L0002: JE L00,#03 [FALSE] L0003
PRINT "three"
RFALSE
L0003: JE L00,#04 [FALSE] L0004
PRINT "four"
RFALSE
L0004: JE L00,#05 [FALSE] L0005
PRINT "five"
RFALSE
L0005: JE L00,#06 [FALSE] L0006
PRINT "six"
RFALSE
L0006: JE L00,#07 [FALSE] L0007
PRINT "seven"
RFALSE
L0007: JE L00,#08 [FALSE] L0008
PRINT "eight"
RFALSE
L0008: JE L00,#09 [FALSE] L0009
PRINT "nine"
RFALSE
L0009: RTRUE
Routine R0068, 2 locals
GET_SIBLING L00 -> L00 [TRUE] L0001
L0001: JG L01,#00 [TRUE] L0002
AND G77,#0200 -> -(SP)
JE (SP)+,#00 [FALSE] L0003
L0002: RET L00
L0003: JE L00,#00 [TRUE] L0005
TEST_ATTR L00,#1d [TRUE] L0005
GET_SIBLING L00 -> L00 [TRUE] L0004
L0004: JUMP L0003
L0005: RET L00
Routine R0069, 1 local
AND G77,#20 -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RTRUE
L0001: AND G77,#10 -> -(SP)
JE (SP)+,#00 [FALSE] L0002
RFALSE
L0002: TEST_ATTR L00,#1b [TRUE] L0003
TEST_ATTR L00,#18 [TRUE] L0003
TEST_ATTR L00,#06 [FALSE] L0004
TEST_ATTR L00,#12 [FALSE] L0004
L0003: RTRUE
L0004: RFALSE
Routine R0070, 2 locals
GET_CHILD L00 -> -(SP) [TRUE] L0001
L0001: JE (SP)+,#00 [TRUE] L0002
CALL_2S R0069 (L00) -> -(SP)
JE (SP)+,#00 [TRUE] L0002
RFALSE
L0002: GET_CHILD L01 -> -(SP) [TRUE] L0003
L0003: JE (SP)+,#00 [TRUE] L0004
CALL_2S R0069 (L01) -> -(SP)
JE (SP)+,#00 [TRUE] L0004
RFALSE
L0004: ADD #04,#80 -> -(SP)
AND G77,(SP)+ -> -(SP)
JE (SP)+,#00 [TRUE] L0010
TEST_ATTR L00,#1e [TRUE] L0005
TEST_ATTR L01,#1e [TRUE] L0006
L0005: TEST_ATTR L01,#1e [TRUE] L0007
TEST_ATTR L00,#1e [FALSE] L0007
L0006: RFALSE
L0007: TEST_ATTR L00,#0d [TRUE] L0008
TEST_ATTR L01,#0d [TRUE] L0009
L0008: TEST_ATTR L01,#0d [TRUE] L0010
TEST_ATTR L00,#0d [FALSE] L0010
L0009: RFALSE
L0010: CALL_VS R0013 (L00,L01) -> -(SP)
RET (SP)+
Routine R0071, 3 locals
STORE G77,L01
AND L01,#0200 -> -(SP)
JE (SP)+,#00 [TRUE] L0003
L0001: JE L00,#00 [TRUE] L0003
TEST_ATTR L00,#1d [TRUE] L0003
GET_SIBLING L00 -> L00 [TRUE] L0002
L0002: JUMP L0001
L0003: JE L00,#00 [FALSE] L0004
RFALSE
L0004: CALL_VN R0072 (L00,L02)
RTRUE
Routine R0072, 11 locals
ADD G46,L02 -> L03
ADD G45,L02 -> L04
STORE L05,L00
STORE L06,#00
L0001: JE L05,#00 [TRUE] L0003
ADD L06,L02 -> -(SP)
JL (SP)+,#80 [FALSE] L0003
STOREB L03,L06,#00
GET_PROP L05,#0f -> -(SP)
JE (SP)+,#00 [TRUE] L0002
INC L07
L0002: CALL_VS R0068 (L05,L01) -> L05
INC L06
JUMP L0001
L0003: ADD L06,#01 -> -(SP)
ADD L02,(SP)+ -> L02
JL L07,#02 [FALSE] L0004
JUMP L0023
L0004: STORE L0a,#01
STORE L05,L00
STORE L07,#00
L0005: JL L07,L06 [FALSE] L0010
LOADB L03,L07 -> -(SP)
JE (SP)+,#00 [FALSE] L0009
STOREB L03,L07,L0a
STOREB L04,L0a,#01
CALL_VS R0068 (L05,L01) -> L08
ADD L07,#01 -> L09
L0006: JE L08,#00 [TRUE] L0008
JL L09,L06 [FALSE] L0008
LOADB L03,L09 -> -(SP)
JE (SP)+,#00 [FALSE] L0007
GET_PROP L05,#0f -> -(SP)
JE (SP)+,#00 [TRUE] L0007
GET_PROP L08,#0f -> -(SP)
JE (SP)+,#00 [TRUE] L0007
CALL_VS R0070 (L05,L08) -> -(SP)
JE (SP)+,#01 [FALSE] L0007
LOADB L04,L0a -> -(SP)
ADD (SP)+,#01 -> -(SP)
STOREB L04,L0a,(SP)+
STOREB L03,L09,L0a
L0007: CALL_VS R0068 (L08,L01) -> L08
INC L09
JUMP L0006
L0008: INC L0a
L0009: CALL_VS R0068 (L05,L01) -> L05
INC L07
JUMP L0005
L0010: DEC L0a
STORE L05,#01
STORE L06,L00
STORE L07,#00
L0011: JG L05,L0a [TRUE] L0022
L0012: LOADB L03,L07 -> -(SP)
JE (SP)+,L05 [TRUE] L0013
SUB #00,L05 -> -(SP)
LOADB L03,L07 -> -(SP)
JE (SP)+,(SP)+ [TRUE] L0013
INC L07
CALL_VS R0068 (L06,L01) -> L06
JUMP L0012
L0013: LOADB L04,L05 -> L09
CALL_VN R0073 (L06,L01)
JE L09,#01 [FALSE] L0016
AND G77,#0100 -> -(SP)
JE (SP)+,#00 [TRUE] L0014
CALL_2N R0063 (L06)
JUMP L0015
L0014: CALL_2N R0062 (L06)
L0015: JUMP L0019
L0016: AND G77,#0100 -> -(SP)
JE (SP)+,#00 [TRUE] L0017
PRINT "the "
L0017: CALL_2N R0066 (L09)
PRINT " "
GET_PROP L06,#0f -> -(SP)
SUB (SP)+,#411c -> -(SP)
JL (SP)+,#00 [TRUE] L0018
GET_PROP L06,#0f -> -(SP)
PRINT_PADDR (SP)+
JUMP L0019
L0018: CALL_VN R0039 (L06,#0f)
L0019: CALL_VN R0074 (L06,L01,L02)
AND G77,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0021
SUB L0a,#01 -> -(SP)
JE L05,(SP)+ [FALSE] L0020
PRINT " and "
L0020: SUB L0a,#01 -> -(SP)
JL L05,(SP)+ [FALSE] L0021
PRINT ", "
L0021: INC L05
JUMP L0011
L0022: RTRUE
L0023: STORE L0a,L06
STORE L05,#01
STORE L06,L00
L0024: JG L05,L0a [TRUE] L0029
CALL_VN R0073 (L06,L01)
AND G77,#0100 -> -(SP)
JE (SP)+,#00 [TRUE] L0025
CALL_2N R0063 (L06)
JUMP L0026
L0025: CALL_2N R0062 (L06)
L0026: CALL_VN R0074 (L06,L01,L02)
AND G77,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0028
SUB L0a,#01 -> -(SP)
JE L05,(SP)+ [FALSE] L0027
PRINT " and "
L0027: SUB L0a,#01 -> -(SP)
JL L05,(SP)+ [FALSE] L0028
PRINT ", "
L0028: CALL_VS R0068 (L06,L01) -> L06
INC L05
JUMP L0024
L0029: RTRUE
Routine R0073, 3 locals
AND G77,#02 -> -(SP)
JE (SP)+,#00 [TRUE] L0002
MUL #02,L01 -> -(SP)
STORE Gef,(SP)+
JL Gef,#01 [TRUE] L0002
L0001: PRINT_CHAR ' '
SUB Gef,#01 -> Gef
JE Gef,#00 [FALSE] L0001
L0002: AND G77,#04 -> -(SP)
JE (SP)+,#00 [TRUE] L0004
GET_PROP L00,#0e -> -(SP)
JE (SP)+,#00 [TRUE] L0004
GET_PROP L00,#0e -> -(SP)
SUB (SP)+,#411c -> -(SP)
JL (SP)+,#00 [TRUE] L0003
GET_PROP L00,#0e -> -(SP)
PRINT_PADDR (SP)+
STORE L02,#01
JUMP L0004
L0003: STORE G0d,#01
CALL_VS R0039 (L00,#0e) -> L02
L0004: RET L02
Routine R0074, 4 locals
AND G77,#80 -> -(SP)
JE (SP)+,#00 [TRUE] L0005
TEST_ATTR L00,#0d [FALSE] L0001
TEST_ATTR G00,#0d [TRUE] L0001
PRINT " (providing light)"
L0001: TEST_ATTR L00,#06 [FALSE] L0002
TEST_ATTR L00,#12 [TRUE] L0002
PRINT " (which is closed)"
L0002: TEST_ATTR L00,#06 [FALSE] L0005
TEST_ATTR L00,#12 [TRUE] L0003
TEST_ATTR L00,#1b [FALSE] L0005
L0003: GET_CHILD L00 -> -(SP) [TRUE] L0004
L0004: JE (SP)+,#00 [FALSE] L0005
PRINT " (which is empty)"
L0005: AND G77,#04 -> -(SP)
JE (SP)+,#00 [TRUE] L0015
GET_PROP L00,#0e -> -(SP)
JE (SP)+,#00 [TRUE] L0007
STORE G0d,#02
CALL_VS R0039 (L00,#0e) -> -(SP)
JE (SP)+,#00 [TRUE] L0007
AND G77,#01 -> -(SP)
JE (SP)+,#00 [TRUE] L0006
NEW_LINE
L0006: RTRUE
L0007: TEST_ATTR L00,#0d [FALSE] L0008
PRINT " (providing light)"
L0008: TEST_ATTR L00,#1e [FALSE] L0009
PRINT " (being worn)"
L0009: TEST_ATTR L00,#06 [FALSE] L0015
PRINT " (which is "
TEST_ATTR L00,#12 [FALSE] L0012
PRINT "open"
GET_CHILD L00 -> -(SP) [TRUE] L0010
L0010: JE (SP)+,#00 [FALSE] L0011
PRINT " but empty"
L0011: JUMP L0013
L0012: PRINT "closed"
L0013: TEST_ATTR L00,#0e [FALSE] L0014
TEST_ATTR L00,#0f [FALSE] L0014
PRINT " and locked"
L0014: PRINT ")"
L0015: AND G77,#20 -> -(SP)
JE (SP)+,#00 [TRUE] L0018
GET_CHILD L00 -> -(SP) [TRUE] L0016
L0016: JE (SP)+,#00 [TRUE] L0018
AND G77,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0017
PRINT " containing "
L0017: STORE L03,#01
L0018: AND G77,#10 -> -(SP)
JE (SP)+,#01 [TRUE] L0030
GET_CHILD L00 -> -(SP) [TRUE] L0019
L0019: JE (SP)+,#00 [TRUE] L0030
TEST_ATTR L00,#18 [FALSE] L0024
AND G77,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0023
AND G77,#40 -> -(SP)
JE (SP)+,#00 [TRUE] L0020
PRINT " (on "
JUMP L0021
L0020: PRINT ", on top of "
L0021: TEST_ATTR L00,#03 [FALSE] L0022
PRINT "whom "
JUMP L0023
L0022: PRINT "which "
L0023: STORE L03,#01
L0024: TEST_ATTR L00,#06 [FALSE] L0030
TEST_ATTR L00,#12 [TRUE] L0025
TEST_ATTR L00,#1b [FALSE] L0030
L0025: AND G77,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0029
AND G77,#40 -> -(SP)
JE (SP)+,#00 [TRUE] L0026
PRINT " (in "
JUMP L0027
L0026: PRINT ", inside "
L0027: TEST_ATTR L00,#03 [FALSE] L0028
PRINT "whom "
JUMP L0029
L0028: PRINT "which "
L0029: STORE L03,#01
L0030: JE L03,#01 [FALSE] L0034
AND G77,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0034
STORE Gef,#00
GET_CHILD L00 -> -(SP) [FALSE] L0032
L0031: INC Gef
GET_SIBLING (SP)+ -> -(SP) [TRUE] L0031
L0032: ADD (SP)+,Gef -> -(SP)
JG (SP)+,#01 [FALSE] L0033
PRINT "are "
JUMP L0034
L0033: PRINT "is "
L0034: AND G77,#01 -> -(SP)
JE (SP)+,#00 [TRUE] L0035
NEW_LINE
L0035: JE L03,#01 [FALSE] L0037
ADD L01,#01 -> -(SP)
GET_CHILD L00 -> -(SP) [TRUE] L0036
L0036: CALL_VN R0072 ((SP)+,(SP)+,L02)
L0037: JE L03,#01 [FALSE] L0038
AND G77,#40 -> -(SP)
JE (SP)+,#00 [TRUE] L0038
PRINT ")"
L0038: RTRUE
Routine R0075, 5 locals
ADD #0f,#01 -> L01
L0001: JG L01,G15 [TRUE] L0006
GET_PROP_ADDR L01,#17 -> L04
JE L04,#00 [TRUE] L0005
TEST_ATTR L01,#0b [TRUE] L0005
GET_PROP_ADDR L01,#17 -> -(SP)
STORE Gef,(SP)+
JZ Gef [TRUE] L0002
GET_PROP_LEN Gef -> Gef
L0002: STORE L02,Gef
STORE L03,#00
L0003: DIV L02,#02 -> -(SP)
JL L03,(SP)+ [FALSE] L0005
LOADW L04,L03 -> -(SP)
JE L00,(SP)+ [FALSE] L0004
INSERT_OBJ L01,L00
L0004: INC L03
JUMP L0003
L0005: INC L01
JUMP L0001
L0006: RTRUE
Routine R0076, 2 locals
INSERT_OBJ G08,L00
STORE G00,L00
STORE G0a,G00
CALL_2N R0056 (#01)
JE L01,#00 [FALSE] L0001
CALL_2N R0040 (#27)
L0001: RTRUE
Routine R0077, 1 local
CALL_VN R0040 (#24,L00)
CALL_2N R0040 (#27)
RTRUE
Routine R0078, 1 local
L0001: JE #01,#01 [FALSE] L0006
STOREB G16,#01,#00
SPLIT_WINDOW #01
SET_WINDOW #01
SET_CURSOR #01,#01
SET_TEXT_STYLE REVERSE
LOADB #00,#21 -> Gee
SUB Gee,#01 -> -(SP)
STORE Gef,(SP)+
JL Gef,#01 [TRUE] L0003
L0002: PRINT_CHAR ' '
SUB Gef,#01 -> Gef
JE Gef,#00 [FALSE] L0002
L0003: SET_CURSOR #01,#02
PRINT_OBJ G00
SET_CURSOR #01,#33
PRINT "Score: "
PRINT_NUM G01
SET_CURSOR #01,#40
PRINT "Moves: "
PRINT_NUM G02
SET_CURSOR #01,#01
SET_TEXT_STYLE ROMAN
SET_WINDOW #00
READ G16,G17 -> Gef
LOADW G17,#01 -> L00
JE L00,"yes","y" [FALSE] L0004
RTRUE
L0004: JE L00,"no","n" [FALSE] L0005
RFALSE
L0005: PRINT "Please answer yes or no.> "
JUMP L0001
L0006: RTRUE
Routine R0079, 0 locals
Action routine for:
"die"
PRINT "Are you sure you want to quit? "
CALL_1S R0078 -> -(SP)
JE (SP)+,#00 [TRUE] L0001
QUIT
L0001: RTRUE
Routine R0080, 0 locals
Action routine for:
"restart"
PRINT "Are you sure you want to restart? "
CALL_1S R0078 -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RESTART
PRINT_RET "Failed."
L0001: RTRUE
Routine R0081, 0 locals
Action routine for:
"restore"
RESTORE -> Gef
JE Gef,#02 [TRUE] L0001
PRINT_RET "Restore failed."
L0001: PRINT "Ok.
"
RTRUE
Routine R0082, 0 locals
Action routine for:
"save"
SAVE -> Gef
JE Gef,#00 [FALSE] L0001
PRINT_RET "Save failed."
L0001: PRINT "Ok.
"
RTRUE
Routine R0083, 0 locals
Action routine for:
"verify"
VERIFY [TRUE] L0001
JUMP L0002
L0001: PRINT_RET "The game file has verified as intact."
L0002: PRINT_RET "The game file did not verify properly, and may be
corrupted (unless you are running it on a primitive interpreter which does not
properly implement the VERIFY code)."
Routine R0084, 0 locals
Action routine for:
"script"
"script on"
JE G0e,#01 [FALSE] L0001
PRINT_RET "Transcripting is already on."
L0001: STORE G0e,#01
LOADW #00,#08 -> -(SP)
OR (SP)+,#01 -> -(SP)
STOREW #00,#08,(SP)+
PRINT "Start of a transcript of
"
CALL_1N R0045
RTRUE
Routine R0085, 0 locals
Action routine for:
"script off"
"noscript"
JE G0e,#00 [FALSE] L0001
PRINT_RET "Transcripting is already off."
L0001: PRINT "
End of transcript.
"
STORE G0e,#00
LOADW #00,#08 -> -(SP)
AND (SP)+,#fffe -> -(SP)
STOREW #00,#08,(SP)+
RTRUE
Routine R0086, 0 locals
Action routine for:
"notify on"
STORE G10,#01
PRINT_RET "Score notification on."
Routine R0087, 0 locals
Action routine for:
"notify off"
STORE G10,#00
PRINT_RET "Score notification off."
Routine R0088, 0 locals
Action routine for:
"score"
JE G0c,#00 [FALSE] L0001
PRINT "You have so far scored "
JUMP L0002
L0001: PRINT "In that game you scored "
L0002: PRINT_NUM G06
PRINT " out of a possible "
PRINT_NUM #015e
PRINT ", in "
PRINT_NUM G07
PRINT " turns"
CALL_1N R0297
RTRUE
Routine R0089, 1 local
LOADB G79,L00 -> -(SP)
JE (SP)+,#00 [FALSE] L0001
STOREB G79,L00,#01
LOADB G78,L00 -> -(SP)
ADD G06,(SP)+ -> G06
L0001: RTRUE
Routine R0090, 2 locals
PRINT " "
STORE L01,L00
JL L01,#00 [FALSE] L0001
SUB #00,L00 -> L01
MUL L01,#0a -> L01
L0001: JL L01,#0a [FALSE] L0002
PRINT " "
JUMP L0004
L0002: JL L01,#64 [FALSE] L0003
PRINT " "
JUMP L0004
L0003: JL L01,#03e8 [FALSE] L0004
PRINT " "
L0004: PRINT_NUM L00
PRINT " "
RTRUE
Routine R0091, 1 local
Action routine for:
"full"
CALL_1N R0088
JE G06,#00 [TRUE] L0001
JE #01,#01 [FALSE] L0002
L0001: RFALSE
L0002: NEW_LINE
JE G0c,#00 [FALSE] L0003
PRINT "The score is "
JUMP L0004
L0003: PRINT "The score was "
L0004: PRINT "made up as follows:
"
STORE L00,#00
L0005: JL L00,#01 [FALSE] L0007
LOADB G79,L00 -> -(SP)
JE (SP)+,#01 [FALSE] L0006
LOADB G78,L00 -> -(SP)
CALL_2N R0090 ((SP)+)
CALL_2N R0330 (L00)
L0006: INC L00
JUMP L0005
L0007: JE G12,#00 [TRUE] L0008
CALL_2N R0090 (G12)
PRINT "finding sundry items
"
L0008: JE G11,#00 [TRUE] L0009
CALL_2N R0090 (G11)
PRINT "visiting various places
"
L0009: NEW_LINE
CALL_2N R0090 (G06)
PRINT "total (out of "
PRINT_NUM #015e
PRINT ")
"
RTRUE
Routine R0092, 0 locals
Action routine for:
"i wide"
ADD #08,#10 -> -(SP)
ADD #04,(SP)+ -> G7a
CALL_2N R0040 (#16)
RTRUE
Routine R0093, 0 locals
Action routine for:
"i tall"
ADD #01,#10 -> -(SP)
ADD #02,(SP)+ -> -(SP)
ADD #04,(SP)+ -> G7a
CALL_2N R0040 (#16)
RTRUE
Routine R0094, 0 locals
Action routine for:
"carry inventory"
"i"
GET_CHILD G08 -> -(SP) [TRUE] L0001
L0001: JE (SP)+,#00 [FALSE] L0002
PRINT_RET "You are carrying nothing."
L0002: JE G7a,#00 [FALSE] L0003
CALL_2N R0040 (#25)
RTRUE
L0003: PRINT "You are carrying"
AND G7a,#01 -> -(SP)
JE (SP)+,#00 [TRUE] L0004
PRINT ":
"
JUMP L0005
L0004: PRINT " "
L0005: GET_CHILD G08 -> -(SP) [TRUE] L0006
L0006: CALL_VN R0071 ((SP)+,G7a,#01)
AND G7a,#08 -> -(SP)
JE (SP)+,#00 [TRUE] L0007
PRINT ".
"
L0007: CALL_1N R0043
RTRUE
Routine R0095, 0 locals
Action routine for:
"carry MULTI"
"remove MULTI"
"peel NOUN"
"peel off NOUN"
JE G28,#00 [TRUE] L0001
GET_PARENT G1f -> -(SP)
JE (SP)+,G08 [TRUE] L0004
L0001: JE G00,#0e [FALSE] L0003
CALL_2S R0096 (G0a) -> -(SP)
JE (SP)+,#00 [TRUE] L0002
RTRUE
L0002: JUMP L0004
L0003: CALL_2S R0096 (G00) -> -(SP)
JE (SP)+,#00 [TRUE] L0004
RTRUE
L0004: CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0005
RTRUE
L0005: STORE G27,G28
JE G27,#00 [FALSE] L0006
PRINT "Taken.
"
L0006: RTRUE
Routine R0096, 5 locals
JE G1f,G08 [FALSE] L0001
PRINT_RET "As the bishop said to the actress."
L0001: TEST_ATTR G1f,#03 [FALSE] L0002
PRINT "I don't suppose "
CALL_2N R0063 (G1f)
PRINT_RET " would care for that."
L0002: GET_PARENT G1f -> L01
JE L01,G08 [FALSE] L0003
PRINT_RET "You already have that."
L0003: TEST_ATTR L01,#06 [TRUE] L0004
TEST_ATTR L01,#18 [FALSE] L0006
L0004: STORE L04,L01
STORE L03,G1b
STORE G1b,#ff
CALL_VS R0039 (L01,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0005
STORE G1b,L03
RTRUE
L0005: STORE G1b,L03
L0006: JE L01,L00 [TRUE] L0012
TEST_ATTR L01,#06 [TRUE] L0009
TEST_ATTR L01,#18 [TRUE] L0009
TEST_ATTR L01,#03 [FALSE] L0007
PRINT "That seems to belong to "
CALL_2N R0063 (L01)
PRINT_RET "."
L0007: TEST_ATTR L01,#1b [FALSE] L0008
PRINT "That seems to be part of "
CALL_2N R0063 (L01)
PRINT_RET "."
L0008: PRINT_RET "That isn't available."
L0009: TEST_ATTR L01,#06 [FALSE] L0010
TEST_ATTR L01,#12 [TRUE] L0010
PRINT "Unfortunately "
CALL_2N R0063 (L01)
PRINT_RET " isn't open."
L0010: GET_PARENT L01 -> L01
JE L01,G08 [FALSE] L0011
STORE L01,L00
L0011: JUMP L0006
L0012: TEST_ATTR G1f,#15 [FALSE] L0013
PRINT_RET "That's hardly portable."
L0013: TEST_ATTR G1f,#17 [FALSE] L0014
PRINT_RET "Fixed in place."
L0014: STORE L03,#00
GET_CHILD G08 -> L02 [TRUE] L0015
L0015: JE L02,#00 [TRUE] L0018
TEST_ATTR L02,#1e [TRUE] L0016
INC L03
L0016: GET_SIBLING L02 -> L02 [TRUE] L0017
L0017: JUMP L0015
L0018: GET_PROP G08,#1c -> -(SP)
JL L03,(SP)+ [TRUE] L0027
JE #00,#00 [TRUE] L0026
GET_PARENT #00 -> -(SP)
JE (SP)+,G08 [TRUE] L0019
PRINT_RET "You're carrying too many things already."
L0019: STORE L02,#00
GET_CHILD G08 -> L03 [TRUE] L0020
L0020: JE L03,#00 [TRUE] L0023
JE L03,#00 [TRUE] L0021
TEST_ATTR L03,#1e [TRUE] L0021
TEST_ATTR L03,#0d [TRUE] L0021
STORE L02,L03
L0021: GET_SIBLING L03 -> L03 [TRUE] L0022
L0022: JUMP L0020
L0023: JE L02,#00 [TRUE] L0024
PRINT "(putting "
CALL_2N R0063 (L02)
PRINT " into "
CALL_2N R0063 (#00)
PRINT " to make room)
"
INSERT_OBJ L02,#00
JUMP L0025
L0024: PRINT_RET "You're carrying too many things already."
L0025: JUMP L0027
L0026: PRINT_RET "You're carrying too many things already."
L0027: INSERT_OBJ G1f,G08
JE L04,#00 [TRUE] L0029
STORE L03,G1b
STORE G1b,#ff
CALL_VS R0039 (L04,#04) -> -(SP)
JE (SP)+,#00 [TRUE] L0028
STORE G1b,L03
RTRUE
L0028: STORE G1b,L03
L0029: RFALSE
Routine R0097, 1 local
Action routine for:
"put down MULTIHELD"
"put MULTIHELD down"
"discard MULTIHELD"
GET_PARENT G1f -> L00
JE L00,G00 [FALSE] L0001
PRINT_RET "Already on the floor."
L0001: JE L00,G08 [TRUE] L0002
PRINT_RET "You haven't got that."
L0002: TEST_ATTR G1f,#1e [FALSE] L0003
PRINT "(First taking "
CALL_2N R0063 (G1f)
PRINT " off)
"
CALL_VN R0040 (#14,G1f)
TEST_ATTR G1f,#1e [FALSE] L0003
RTRUE
L0003: GET_PARENT G08 -> -(SP)
INSERT_OBJ G1f,(SP)+
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0004
RTRUE
L0004: PRINT "Dropped.
"
RTRUE
Routine R0098, 1 local
Action routine for:
"carry MULTIINSIDE from NOUN"
"carry MULTIINSIDE off NOUN"
"remove MULTIINSIDE from NOUN"
GET_PARENT G1f -> L00
TEST_ATTR L00,#06 [FALSE] L0001
TEST_ATTR L00,#12 [TRUE] L0001
PRINT_RET "Alas, it is closed."
L0001: JE L00,G20 [TRUE] L0002
PRINT_RET "But it isn't there now."
L0002: TEST_ATTR G20,#1e [FALSE] L0003
PRINT_RET "You'll need to take it off first."
L0003: CALL_2S R0096 (G20) -> -(SP)
JE (SP)+,#00 [TRUE] L0004
RTRUE
L0004: STORE G1b,#11
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0005
RTRUE
L0005: STORE G1b,#12
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0006
RTRUE
L0006: PRINT "Removed.
"
RTRUE
Routine R0099, 0 locals
Action routine for:
"put MULTIEXCEPT on NOUN"
"put MULTIEXCEPT onto NOUN"
"discard MULTIEXCEPT on NOUN"
"discard MULTIEXCEPT onto NOUN"
JE G20,#0b [FALSE] L0001
CALL_VN R0040 (#1a,G1f)
RFALSE
L0001: GET_PARENT G1f -> -(SP)
JE (SP)+,G08 [TRUE] L0002
PRINT_RET "You need to be holding it before you can put it onto
something else."
L0002: JG G20,#01 [FALSE] L0004
STORE G1b,#fe
CALL_VS R0039 (G20,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0003
STORE G1b,#19
RTRUE
L0003: STORE G1b,#19
L0004: JE G20,G1f [FALSE] L0005
PRINT_RET "You can't put something on top of itself."
L0005: TEST_ATTR G20,#18 [TRUE] L0006
PRINT "Putting things on "
CALL_2N R0063 (G20)
PRINT_RET " would achieve nothing."
L0006: GET_PARENT G20 -> -(SP)
JE (SP)+,G08 [FALSE] L0007
PRINT_RET "You lack the dexterity."
L0007: TEST_ATTR G1f,#1e [FALSE] L0008
PRINT "(first taking it off)
"
CALL_VN R0040 (#14,G1f)
TEST_ATTR G1f,#1e [FALSE] L0008
RTRUE
L0008: GET_PROP G20,#1c -> -(SP)
STORE Gef,#00
GET_CHILD G20 -> -(SP) [FALSE] L0010
L0009: INC Gef
GET_SIBLING (SP)+ -> -(SP) [TRUE] L0009
L0010: ADD (SP)+,Gef -> -(SP)
JL (SP)+,(SP)+ [TRUE] L0011
PRINT "There is no more room on "
CALL_2N R0063 (G20)
PRINT_RET "."
L0011: INSERT_OBJ G1f,G20
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0012
RTRUE
L0012: JG G20,#01 [FALSE] L0014
STORE G1b,#fe
CALL_VS R0039 (G20,#04) -> -(SP)
JE (SP)+,#00 [TRUE] L0013
STORE G1b,#19
RTRUE
L0013: STORE G1b,#19
L0014: JE G26,#01 [FALSE] L0015
PRINT_RET "Done."
L0015: PRINT "You put "
CALL_2N R0063 (G1f)
PRINT " on "
CALL_2N R0063 (G20)
PRINT_RET "."
Routine R0100, 0 locals
Action routine for:
"put MULTIEXCEPT in NOUN"
"put MULTIEXCEPT inside NOUN"
"put MULTIEXCEPT into NOUN"
"insert MULTIEXCEPT in NOUN"
"insert MULTIEXCEPT into NOUN"
"discard MULTIEXCEPT in NOUN"
"discard MULTIEXCEPT into NOUN"
"discard MULTIEXCEPT down NOUN"
JE G20,#0b [FALSE] L0001
CALL_VN R0040 (#1a,G1f)
RTRUE
L0001: GET_PARENT G1f -> -(SP)
JE (SP)+,G08 [TRUE] L0002
PRINT_RET "You need to be holding it before you can put it into
something else."
L0002: JG G20,#01 [FALSE] L0004
STORE G1b,#fe
CALL_VS R0039 (G20,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0003
STORE G1b,#18
RTRUE
L0003: STORE G1b,#18
L0004: TEST_ATTR G20,#06 [TRUE] L0005
PRINT_RET "That can't contain things."
L0005: TEST_ATTR G20,#12 [TRUE] L0006
PRINT_RET "Alas, it is closed."
L0006: TEST_ATTR G20,#1e [FALSE] L0007
PRINT_RET "You'll need to take it off first."
L0007: JE G20,G1f [FALSE] L0008
PRINT_RET "You can't put something inside itself."
L0008: TEST_ATTR G1f,#1e [FALSE] L0009
PRINT "(first taking it off)
"
CALL_VN R0040 (#14,G1f)
TEST_ATTR G1f,#1e [FALSE] L0009
RTRUE
L0009: GET_PROP G20,#1c -> -(SP)
STORE Gef,#00
GET_CHILD G20 -> -(SP) [FALSE] L0011
L0010: INC Gef
GET_SIBLING (SP)+ -> -(SP) [TRUE] L0010
L0011: ADD (SP)+,Gef -> -(SP)
JL (SP)+,(SP)+ [TRUE] L0012
PRINT "There is no more room in "
CALL_2N R0063 (G20)
PRINT_RET "."
L0012: INSERT_OBJ G1f,G20
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0013
RTRUE
L0013: JG G20,#01 [FALSE] L0015
STORE G1b,#fe
CALL_VS R0039 (G20,#04) -> -(SP)
JE (SP)+,#00 [TRUE] L0014
STORE G1b,#18
RTRUE
L0014: STORE G1b,#18
L0015: JE G26,#01 [FALSE] L0016
PRINT_RET "Done."
L0016: PRINT "You put "
CALL_2N R0063 (G1f)
PRINT " into "
CALL_2N R0063 (G20)
PRINT_RET "."
Routine R0101, 5 locals
Action routine for:
"transfer NOUN to NOUN"
"clear NOUN to NOUN"
STORE L01,#1a
TEST_ATTR G20,#06 [FALSE] L0001
STORE L01,#18
JUMP L0002
L0001: TEST_ATTR G20,#18 [FALSE] L0002
STORE L01,#19
L0002: GET_PARENT G1f -> L00
JE L00,G08 [TRUE] L0007
L0003: JE L00,#00 [TRUE] L0006
TEST_ATTR L00,#12 [TRUE] L0004
PRINT_RET "That isn't in your possession."
L0004: GET_PARENT L00 -> L00
JE L00,G08 [FALSE] L0005
JUMP L0007
L0005: JUMP L0003
L0006: PRINT_RET "First pick that up."
L0007: GET_PARENT G1f -> -(SP)
JE (SP)+,G08 [TRUE] L0012
GET_PARENT G1f -> L04
TEST_ATTR L04,#06 [TRUE] L0008
TEST_ATTR L04,#18 [FALSE] L0010
L0008: STORE L03,L04
STORE L02,G1b
STORE G1b,#ff
CALL_VS R0039 (L04,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0009
STORE G1b,L02
RTRUE
L0009: STORE G1b,L02
L0010: INSERT_OBJ G1f,G08
JE L03,#00 [TRUE] L0012
STORE L02,G1b
STORE G1b,#ff
CALL_VS R0039 (L03,#04) -> -(SP)
JE (SP)+,#00 [TRUE] L0011
STORE G1b,L02
RTRUE
L0011: STORE G1b,L02
L0012: JE L01,#1a [FALSE] L0013
CALL_VN R0040 (#1a,G1f)
RTRUE
L0013: JE L01,#18 [FALSE] L0014
CALL_VN R0040 (#18,G1f,G20)
RTRUE
L0014: JE L01,#19 [FALSE] L0015
CALL_VN R0040 (#19,G1f,G20)
RTRUE
L0015: RTRUE
Routine R0102, 0 locals
Action routine for:
"empty NOUN"
"empty out NOUN"
"empty NOUN out"
"douse NOUN"
STORE G20,#0b
CALL_1N R0103
RTRUE
Routine R0103, 2 locals
Action routine for:
"empty NOUN to NOUN"
"empty NOUN into NOUN"
"empty NOUN on NOUN"
"empty NOUN onto NOUN"
TEST_ATTR G1f,#06 [TRUE] L0001
CALL_2N R0064 (G1f)
PRINT_RET " can't contain things."
L0001: TEST_ATTR G1f,#12 [TRUE] L0002
CALL_2N R0064 (G1f)
PRINT_RET " is closed."
L0002: JE G20,#0b [TRUE] L0004
TEST_ATTR G20,#06 [TRUE] L0003
CALL_2N R0064 (G20)
PRINT_RET " can't contain things."
L0003: TEST_ATTR G20,#12 [TRUE] L0004
CALL_2N R0064 (G20)
PRINT_RET " is closed."
L0004: GET_CHILD G1f -> L00 [TRUE] L0005
L0005: JE L00,#00 [FALSE] L0006
CALL_2N R0063 (G1f)
PRINT_RET " is empty already."
L0006: JE L00,#00 [TRUE] L0008
GET_SIBLING L00 -> L01 [TRUE] L0007
L0007: CALL_2N R0065 (L00)
PRINT ": "
CALL_VN R0040 (#1d,L00,G20)
STORE L00,L01
JUMP L0006
L0008: RTRUE
Routine R0104, 0 locals
Action routine for:
"feed HELD to CREATURE"
"feed over HELD to CREATURE"
GET_PARENT G1f -> -(SP)
JE (SP)+,G08 [TRUE] L0001
PRINT "You aren't holding "
CALL_2N R0063 (G1f)
PRINT_RET "."
L0001: JE G20,G08 [FALSE] L0002
PRINT "You juggle "
CALL_2N R0063 (G1f)
PRINT_RET " for a while, but don't achieve much."
L0002: CALL_VS R0042 (G20,#20) -> -(SP)
JE (SP)+,#00 [TRUE] L0003
RFALSE
L0003: CALL_2N R0064 (G20)
PRINT_RET " doesn't seem interested."
Routine R0105, 0 locals
Action routine for:
"feed CREATURE HELD"
CALL_VN R0040 (#20,G20,G1f)
RTRUE
Routine R0106, 0 locals
Action routine for:
"show HELD to CREATURE"
GET_PARENT G1f -> -(SP)
JE (SP)+,G08 [TRUE] L0001
PRINT "You aren't holding "
CALL_2N R0063 (G1f)
PRINT_RET "."
L0001: JE G20,G08 [FALSE] L0002
CALL_VN R0040 (#28,G1f)
RTRUE
L0002: CALL_VS R0042 (G20,#22) -> -(SP)
JE (SP)+,#00 [TRUE] L0003
RFALSE
L0003: CALL_2N R0064 (G20)
PRINT_RET " is unimpressed."
Routine R0107, 0 locals
Action routine for:
"show CREATURE HELD"
CALL_VN R0040 (#22,G20,G1f)
RTRUE
Routine R0108, 1 local
Action routine for:
"carry in NOUN"
"carry on NOUN"
"go NOUN"
"go into NOUN"
"go in NOUN"
"go inside NOUN"
"go through NOUN"
"cross NOUN"
"sit on NOUN"
TEST_ATTR G1f,#08 [FALSE] L0001
CALL_VN R0040 (#24,G1f)
RTRUE
L0001: GET_PARENT G08 -> L00
JE L00,G00 [TRUE] L0002
PRINT "But you're already in "
CALL_2N R0063 (L00)
PRINT_RET "."
L0002: TEST_ATTR G1f,#0a [TRUE] L0003
PRINT_RET "A surreal idea."
L0003: GET_PARENT G1f -> L00
JE L00,#01 [FALSE] L0004
CALL_VN R0040 (#24,G1f)
RTRUE
L0004: JE L00,G00 [TRUE] L0005
PRINT_RET "You can only get into something on the floor."
L0005: INSERT_OBJ G08,G1f
PRINT "You get into "
CALL_2N R0063 (G1f)
PRINT ".
"
CALL_2N R0115 (G1f)
RTRUE
Routine R0109, 0 locals
Action routine for:
"carry off NOUN"
GET_PARENT G08 -> -(SP)
JE (SP)+,G1f [FALSE] L0001
CALL_2N R0040 (#10)
RTRUE
L0001: PRINT "But you aren't on "
CALL_2N R0063 (G1f)
PRINT_RET " at the moment."
Routine R0110, 0 locals
Action routine for:
"carry out"
"carry off"
"carry up"
"stand"
"stand up"
"exit"
GET_PARENT G08 -> -(SP)
JE (SP)+,G00 [TRUE] L0001
JE G00,#0e [FALSE] L0003
GET_PARENT G08 -> -(SP)
JE (SP)+,G0a [FALSE] L0003
L0001: GET_PROP G00,#11 -> -(SP)
JE (SP)+,#00 [TRUE] L0002
CALL_VN R0040 (#24,#0c)
RTRUE
L0002: PRINT_RET "But you're aren't in anything at the moment."
L0003: INSERT_OBJ G08,G00
PRINT "You are on your own two feet again.
"
CALL_2N R0119 (#01)
CALL_1N R0043
RTRUE
Routine R0111, 0 locals
Action routine for:
"go"
PRINT_RET "You'll have to say which compass direction to go in."
Routine R0112, 0 locals
Action routine for:
"cross"
"in"
CALL_VN R0040 (#24,#0d)
RTRUE
Routine R0113, 5 locals
Action routine for:
"go ATTRIBUTE(7)"
STORE L03,#00
GET_PARENT G08 -> L00
JE G00,#0e [TRUE] L0001
JE L00,G00 [FALSE] L0002
L0001: JE G00,#0e [FALSE] L0006
JE L00,G0a [TRUE] L0006
L0002: STORE L01,G00
STORE G00,G0a
CALL_VS R0039 (L00,#03) -> -(SP)
JE (SP)+,#00 [TRUE] L0003
STORE L03,L00
GET_PARENT L00 -> L00
STORE G00,L01
JUMP L0006
L0003: STORE G00,L01
PRINT "You'll have to get "
TEST_ATTR L00,#18 [FALSE] L0004
PRINT "off "
JUMP L0005
L0004: PRINT "out of "
L0005: CALL_2N R0063 (L00)
PRINT_RET " first."
L0006: GET_PROP G1f,#09 -> L04
SUB L04,#152f -> -(SP)
JL (SP)+,#00 [TRUE] L0007
CALL_VS R0039 (G1f,#09) -> L04
L0007: GET_PROP L00,L04 -> L01
JG L01,#0201 [FALSE] L0009
SUB L01,#411c -> -(SP)
JL (SP)+,#00 [TRUE] L0008
PRINT_PADDR L01
NEW_LINE
RFALSE
L0008: CALL_VS R0039 (L00,L04) -> L01
JE L01,#01 [FALSE] L0009
RTRUE
L0009: JE L01,#00 [FALSE] L0012
GET_PROP L00,#16 -> L01
SUB L01,#411c -> -(SP)
JL (SP)+,#00 [TRUE] L0010
PRINT_PADDR L01
JUMP L0011
L0010: CALL_VN R0039 (L00,#16)
L0011: NEW_LINE
RFALSE
L0012: TEST_ATTR L01,#08 [FALSE] L0019
TEST_ATTR L01,#05 [FALSE] L0013
PRINT_RET "You can't go that way."
L0013: TEST_ATTR L01,#12 [TRUE] L0016
JE G1f,#0a [FALSE] L0014
PRINT "You are unable to climb "
CALL_2N R0063 (L01)
PRINT_RET "."
L0014: JE G1f,#0b [FALSE] L0015
PRINT "You are unable to descend "
CALL_2N R0063 (L01)
PRINT_RET "."
L0015: PRINT "You can't, since "
CALL_2N R0063 (L01)
PRINT_RET " is in the way."
L0016: GET_PROP L01,#06 -> -(SP)
SUB (SP)+,#152f -> -(SP)
JL (SP)+,#00 [TRUE] L0017
CALL_VS R0039 (L01,#06) -> L01
JUMP L0018
L0017: GET_PROP L01,#06 -> L01
L0018: JE L01,#00 [FALSE] L0019
PRINT "You can't, since "
CALL_2N R0063 (L01)
PRINT_RET " leads nowhere."
L0019: JE L03,#00 [FALSE] L0020
INSERT_OBJ G08,L01
JUMP L0021
L0020: INSERT_OBJ L03,L01
L0021: CALL_2S R0057 (L01) -> L02
JE L02,#00 [TRUE] L0022
STORE G00,L01
STORE G09,#01
JUMP L0024
L0022: JE G00,#0e [FALSE] L0023
CALL_1N R0298
L0023: STORE G0a,L01
STORE G00,#0e
STORE G09,#00
L0024: CALL_1S R0044 -> -(SP)
JE (SP)+,#01 [FALSE] L0025
RTRUE
L0025: CALL_2N R0119 (#01)
RTRUE
Routine R0114, 2 locals
GET_PARENT G08 -> -(SP)
JE L00,(SP)+ [FALSE] L0001
RFALSE
L0001: PRINT "
On "
CALL_2N R0063 (L00)
STORE Gef,#00
GET_CHILD L00 -> -(SP) [FALSE] L0003
L0002: INC Gef
GET_SIBLING (SP)+ -> -(SP) [TRUE] L0002
L0003: ADD (SP)+,Gef -> -(SP)
STORE L01,(SP)+
JE L01,#01 [FALSE] L0004
PRINT " is "
JUMP L0005
L0004: PRINT " are "
L0005: ADD #80,#40 -> -(SP)
ADD #10,(SP)+ -> -(SP)
ADD #08,(SP)+ -> -(SP)
GET_CHILD L00 -> -(SP) [TRUE] L0006
L0006: CALL_VN R0071 ((SP)+,(SP)+)
PRINT ".
"
RTRUE
Routine R0115, 7 locals
GET_CHILD L00 -> L01 [TRUE] L0001
L0001: JE L01,#00 [TRUE] L0003
CLEAR_ATTR L01,#1d
GET_SIBLING L01 -> L01 [TRUE] L0002
L0002: JUMP L0001
L0003: STORE L03,#00
GET_CHILD L00 -> L01 [TRUE] L0004
L0004: JE L01,#00 [TRUE] L0018
TEST_ATTR L01,#05 [TRUE] L0016
GET_PARENT G08 -> -(SP)
JE L01,(SP)+ [TRUE] L0016
TEST_ATTR L01,#15 [TRUE] L0014
SET_ATTR L01,#1d
INC L03
STORE L02,#12
STORE L06,#00
TEST_ATTR L01,#08 [FALSE] L0005
TEST_ATTR L01,#12 [TRUE] L0005
STORE L02,#07
STORE L06,#01
L0005: TEST_ATTR L01,#19 [FALSE] L0006
TEST_ATTR L01,#11 [TRUE] L0006
STORE L02,#07
STORE L06,#01
L0006: TEST_ATTR L01,#06 [FALSE] L0007
TEST_ATTR L01,#12 [TRUE] L0007
GET_PROP_ADDR L01,#07 -> -(SP)
JE (SP)+,#00 [TRUE] L0007
STORE L02,#07
STORE L06,#01
L0007: TEST_ATTR L01,#10 [FALSE] L0008
GET_PROP L01,#14 -> -(SP)
JE (SP)+,#ffff [FALSE] L0008
JE L06,#01 [FALSE] L0013
L0008: GET_PROP L01,#14 -> -(SP)
JE (SP)+,#ffff [TRUE] L0009
CALL_VS R0039 (L01,#14) -> -(SP)
JE (SP)+,#00 [TRUE] L0009
STORE L05,#01
CLEAR_ATTR L01,#1d
DEC L03
JUMP L0013
L0009: GET_PROP L01,L02 -> L04
JE L04,#00 [TRUE] L0013
NEW_LINE
SUB L04,#411c -> -(SP)
JL (SP)+,#00 [TRUE] L0010
PRINT_PADDR L04
JUMP L0011
L0010: CALL_VN R0039 (L01,L02)
L0011: NEW_LINE
STORE L05,#01
CLEAR_ATTR L01,#1d
DEC L03
TEST_ATTR L01,#18 [FALSE] L0013
GET_CHILD L01 -> -(SP) [TRUE] L0012
L0012: JE (SP)+,#00 [TRUE] L0013
CALL_2N R0114 (L01)
L0013: JUMP L0016
L0014: TEST_ATTR L01,#18 [FALSE] L0016
GET_CHILD L01 -> -(SP) [TRUE] L0015
L0015: JE (SP)+,#00 [TRUE] L0016
CALL_2N R0114 (L01)
L0016: GET_SIBLING L01 -> L01 [TRUE] L0017
L0017: JUMP L0004
L0018: JE L03,#00 [FALSE] L0019
RTRUE
L0019: JE L00,G00 [TRUE] L0020
PRINT "
In "
CALL_2N R0063 (L00)
PRINT " you"
JUMP L0021
L0020: PRINT "
You"
L0021: PRINT " can "
JE L05,#01 [FALSE] L0022
PRINT "also "
L0022: PRINT "see "
ADD #80,#40 -> -(SP)
ADD #10,(SP)+ -> -(SP)
ADD #0200,(SP)+ -> -(SP)
ADD #08,(SP)+ -> -(SP)
GET_CHILD L00 -> -(SP) [TRUE] L0023
L0023: CALL_VN R0071 ((SP)+,(SP)+)
JE L00,G00 [TRUE] L0024
PRINT ".
"
L0024: JE L00,G00 [FALSE] L0025
PRINT " here.
"
L0025: RTRUE
Routine R0116, 0 locals
Action routine for:
"brief"
STORE G13,#01
PRINT_PADDR S001
PRINT_RET " is now in its normal "brief" printing mode, which
gives long descriptions of places never before visited and short descriptions
otherwise."
Routine R0117, 0 locals
Action routine for:
"long"
STORE G13,#02
PRINT_PADDR S001
PRINT_RET " is now in its "verbose" mode, which always gives long
descriptions of locations (even if you've been there before)."
Routine R0118, 0 locals
Action routine for:
"short"
STORE G13,#03
PRINT_PADDR S001
PRINT_RET " is now in its "superbrief" mode, which always gives
short descriptions of locations (even if you haven't been there before)."
Routine R0119, 4 locals
Action routine for:
"l"
STORE L02,G00
JE L02,G14 [TRUE] L0003
GET_PROP L02,#12 -> L03
SUB L03,#411c -> -(SP)
JG (SP)+,#00 [FALSE] L0001
PRINT_PADDR L03
JUMP L0002
L0001: JG L03,#00 [FALSE] L0002
CALL_VS R0039 (L02,#12) -> -(SP)
JE (SP)+,#00 [TRUE] L0002
CALL_1N R0326
L0002: CALL_2N R0075 (G00)
L0003: NEW_LINE
SET_TEXT_STYLE BOLDFACE
CALL_2N R0065 (G00)
SET_TEXT_STYLE ROMAN
GET_PARENT G08 -> L01
JE G00,#0e [TRUE] L0006
JE L01,G00 [TRUE] L0006
TEST_ATTR L01,#18 [FALSE] L0004
PRINT " (on "
JUMP L0005
L0004: PRINT " (in "
L0005: CALL_2N R0063 (L01)
PRINT ")"
STORE L02,L01
L0006: JE G0b,#01 [FALSE] L0007
PRINT " (as "
PRINT_OBJ G08
PRINT ")"
L0007: NEW_LINE
JL G13,#03 [FALSE] L0011
JE L00,#01 [FALSE] L0008
JE G13,#02 [TRUE] L0008
TEST_ATTR G00,#1c [TRUE] L0011
L0008: GET_PROP G00,#14 -> -(SP)
JE (SP)+,#ffff [TRUE] L0009
CALL_VN R0039 (G00,#14)
JUMP L0011
L0009: GET_PROP G00,#13 -> L03
SUB L03,#411c -> -(SP)
JG (SP)+,#00 [FALSE] L0010
PRINT_PADDR L03
NEW_LINE
JUMP L0011
L0010: CALL_VN R0039 (G00,#13)
L0011: TEST_ATTR G00,#1c [TRUE] L0012
SET_ATTR G00,#1c
TEST_ATTR G00,#16 [FALSE] L0012
ADD G06,#05 -> G06
ADD G11,#05 -> G11
L0012: JE L02,G00 [TRUE] L0013
CALL_2N R0115 (G00)
L0013: CALL_2N R0115 (L02)
CALL_1N R0327
STORE G1b,#27
CALL_1S R0044 -> -(SP)
JE (SP)+,#01 [FALSE] L0014
RTRUE
L0014: RTRUE
Routine R0120, 1 local
Action routine for:
"l at NOUN"
"check NOUN"
JE G00,#0e [FALSE] L0001
PRINT_RET "Darkness, noun. An absence of light to see by."
L0001: GET_PROP G1f,#13 -> L00
JE L00,#00 [FALSE] L0003
TEST_ATTR G1f,#06 [FALSE] L0002
CALL_1N R0122
RFALSE
L0002: PRINT "You see nothing special about "
CALL_2N R0063 (G1f)
PRINT_RET "."
L0003: SUB L00,#411c -> -(SP)
JG (SP)+,#00 [FALSE] L0004
PRINT_PADDR L00
NEW_LINE
JUMP L0005
L0004: CALL_VN R0039 (G1f,#13)
L0005: TEST_ATTR G1f,#19 [FALSE] L0007
PRINT "It is currently switched "
TEST_ATTR G1f,#11 [FALSE] L0006
PRINT "on.
"
JUMP L0007
L0006: PRINT "off.
"
L0007: CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0008
RTRUE
L0008: RTRUE
Routine R0121, 0 locals
Action routine for:
"l under NOUN"
JE G00,#0e [FALSE] L0001
PRINT_RET "But it's dark."
L0001: PRINT_RET "You find nothing of interest."
Routine R0122, 1 local
Action routine for:
"l inside NOUN"
"l in NOUN"
"l through NOUN"
"search NOUN"
JE G00,#0e [FALSE] L0001
PRINT_RET "But it's dark."
L0001: TEST_ATTR G1f,#18 [FALSE] L0008
STORE Gef,#00
GET_CHILD G1f -> -(SP) [FALSE] L0003
L0002: INC Gef
GET_SIBLING (SP)+ -> -(SP) [TRUE] L0002
L0003: ADD (SP)+,Gef -> -(SP)
STORE L00,(SP)+
JE L00,#00 [FALSE] L0004
PRINT "There is nothing on "
CALL_2N R0063 (G1f)
PRINT_RET "."
L0004: PRINT "On "
CALL_2N R0063 (G1f)
JG L00,#01 [FALSE] L0005
PRINT " are "
JUMP L0006
L0005: PRINT " is "
L0006: ADD #40,#08 -> -(SP)
GET_CHILD G1f -> -(SP) [TRUE] L0007
L0007: CALL_VN R0071 ((SP)+,(SP)+)
PRINT_RET "."
L0008: TEST_ATTR G1f,#06 [TRUE] L0009
PRINT_RET "You find nothing of interest."
L0009: TEST_ATTR G1f,#1b [TRUE] L0010
TEST_ATTR G1f,#12 [TRUE] L0010
PRINT_RET "You can't see inside, since it is closed."
L0010: CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0011
RTRUE
L0011: STORE Gef,#00
GET_CHILD G1f -> -(SP) [FALSE] L0013
L0012: INC Gef
GET_SIBLING (SP)+ -> -(SP) [TRUE] L0012
L0013: ADD (SP)+,Gef -> -(SP)
STORE L00,(SP)+
JE L00,#00 [FALSE] L0014
CALL_2N R0064 (G1f)
PRINT_RET " is empty."
L0014: PRINT "In "
CALL_2N R0063 (G1f)
JG L00,#01 [FALSE] L0015
PRINT " are "
JUMP L0016
L0015: PRINT " is "
L0016: ADD #40,#08 -> -(SP)
GET_CHILD G1f -> -(SP) [TRUE] L0017
L0017: CALL_VN R0071 ((SP)+,(SP)+)
PRINT_RET "."
Routine R0123, 0 locals
Action routine for:
"open NOUN with HELD"
"unlock NOUN with HELD"
TEST_ATTR G1f,#0e [TRUE] L0001
PRINT_RET "I can't see how to unlock that."
L0001: TEST_ATTR G1f,#0f [TRUE] L0002
PRINT_RET "It is in fact unlocked now."
L0002: GET_PROP G1f,#08 -> -(SP)
JE (SP)+,G20 [TRUE] L0003
PRINT_RET "That doesn't seem to fit the lock."
L0003: CLEAR_ATTR G1f,#0f
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0004
RTRUE
L0004: PRINT "You unlock "
CALL_2N R0063 (G1f)
PRINT_RET "."
Routine R0124, 0 locals
Action routine for:
"lock NOUN with HELD"
TEST_ATTR G1f,#0e [TRUE] L0001
PRINT_RET "I can't see how to lock that."
L0001: TEST_ATTR G1f,#0f [FALSE] L0002
PRINT_RET "It is in fact locked now."
L0002: TEST_ATTR G1f,#12 [FALSE] L0003
PRINT_RET "First you'll have to close it."
L0003: GET_PROP G1f,#08 -> -(SP)
JE (SP)+,G20 [TRUE] L0004
PRINT_RET "That doesn't seem to fit the lock."
L0004: SET_ATTR G1f,#0f
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0005
RTRUE
L0005: PRINT "You lock "
CALL_2N R0063 (G1f)
PRINT_RET "."
Routine R0125, 0 locals
Action routine for:
"rotate NOUN on"
"rotate on NOUN"
"switch NOUN"
"switch NOUN on"
"switch on NOUN"
TEST_ATTR G1f,#19 [TRUE] L0001
PRINT_RET "That's not something you can switch."
L0001: TEST_ATTR G1f,#11 [FALSE] L0002
PRINT_RET "It's already on."
L0002: SET_ATTR G1f,#11
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0003
RTRUE
L0003: PRINT "You switch "
CALL_2N R0063 (G1f)
PRINT_RET " on."
Routine R0126, 0 locals
Action routine for:
"rotate NOUN off"
"rotate off NOUN"
"switch NOUN off"
"switch off NOUN"
TEST_ATTR G1f,#19 [TRUE] L0001
PRINT_RET "That's not something you can switch."
L0001: TEST_ATTR G1f,#11 [TRUE] L0002
PRINT_RET "It's already off."
L0002: CLEAR_ATTR G1f,#11
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0003
RTRUE
L0003: PRINT "You switch "
CALL_2N R0063 (G1f)
PRINT_RET " off."
Routine R0127, 0 locals
Action routine for:
"open NOUN"
TEST_ATTR G1f,#13 [TRUE] L0001
PRINT_RET "That's not something you can open."
L0001: TEST_ATTR G1f,#0f [FALSE] L0002
PRINT_RET "It seems to be locked."
L0002: TEST_ATTR G1f,#12 [FALSE] L0003
PRINT_RET "It's already open."
L0003: SET_ATTR G1f,#12
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0004
RTRUE
L0004: PRINT "You open "
CALL_2N R0063 (G1f)
PRINT_RET "."
Routine R0128, 0 locals
Action routine for:
"close NOUN"
TEST_ATTR G1f,#13 [TRUE] L0001
PRINT_RET "That's not something you can close."
L0001: TEST_ATTR G1f,#12 [TRUE] L0002
PRINT_RET "It's already closed."
L0002: CLEAR_ATTR G1f,#12
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0003
RTRUE
L0003: PRINT "You close "
CALL_2N R0063 (G1f)
PRINT_RET "."
Routine R0129, 0 locals
Action routine for:
"carry off ATTRIBUTE(30)"
"remove HELD"
"disrobe HELD"
TEST_ATTR G1f,#1e [TRUE] L0001
PRINT_RET "You're not wearing that."
L0001: CLEAR_ATTR G1f,#1e
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0002
RTRUE
L0002: PRINT "You take off "
CALL_2N R0063 (G1f)
PRINT ".
"
RTRUE
Routine R0130, 0 locals
Action routine for:
"don HELD"
"put on HELD"
TEST_ATTR G1f,#04 [TRUE] L0001
PRINT_RET "You can't wear that!"
L0001: GET_PARENT G1f -> -(SP)
JE (SP)+,G08 [TRUE] L0002
PRINT_RET "You're not holding that!"
L0002: TEST_ATTR G1f,#1e [FALSE] L0003
PRINT_RET "You're already wearing that!"
L0003: SET_ATTR G1f,#1e
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0004
RTRUE
L0004: PRINT "You put on "
CALL_2N R0063 (G1f)
PRINT ".
"
RTRUE
Routine R0131, 0 locals
Action routine for:
"eat HELD"
TEST_ATTR G1f,#09 [TRUE] L0001
PRINT_RET "No, it's plainly inedible."
L0001: REMOVE_OBJ G1f
CALL_1S R0043 -> -(SP)
JE (SP)+,#01 [FALSE] L0002
RTRUE
L0002: PRINT "You eat "
CALL_2N R0063 (G1f)
PRINT_RET ". Not bad."
Routine R0132, 0 locals
Action routine for:
"y"
PRINT_RET "That was a rhetorical question."
Routine R0133, 0 locals
Action routine for:
"no"
PRINT_RET "That was a rhetorical question."
Routine R0134, 0 locals
Action routine for:
"burn NOUN"
"burn NOUN with HELD"
PRINT_RET "In this game, arson is (usually) forbidden."
Routine R0135, 0 locals
Action routine for:
"pray"
PRINT_RET "Spooky! For a moment there, a deep voice seemed to say
"you're on your own"."
Routine R0136, 0 locals
Action routine for:
"awake"
"awake up"
PRINT_RET "The dreadful truth is, this is not a dream."
Routine R0137, 0 locals
Action routine for:
"awake CREATURE"
"awake up CREATURE"
PRINT_RET "That seems unnecessary."
Routine R0138, 0 locals
Action routine for:
"embrace CREATURE"
CALL_VS R0042 (G1f,#50) -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RFALSE
L0001: PRINT_RET "Keep your mind on the game."
Routine R0139, 0 locals
Action routine for:
"think"
PRINT_RET "What a good idea."
Routine R0140, 0 locals
Action routine for:
"smell"
"smell NOUN"
PRINT_RET "You smell nothing unexpected."
Routine R0141, 0 locals
Action routine for:
"hear"
"hear NOUN"
"hear to NOUN"
PRINT_RET "You hear nothing unexpected."
Routine R0142, 0 locals
Action routine for:
"taste"
PRINT_RET "You taste nothing unexpected."
Routine R0143, 0 locals
Action routine for:
"feel"
PRINT_RET "You feel nothing unexpected."
Routine R0144, 0 locals
Action routine for:
"feel NOUN"
TEST_ATTR G1f,#03 [FALSE] L0001
PRINT_RET "Keep your hands to yourself!"
L0001: PRINT_RET "You feel nothing unexpected."
Routine R0145, 0 locals
PRINT_RET "The ground is unsuitable for digging here."
Routine R0146, 0 locals
Action routine for:
"chop NOUN"
PRINT_RET "In this game, cutting things up is never helpful."
Routine R0147, 0 locals
Action routine for:
"hop"
PRINT_RET "You jump on the spot, fruitlessly."
Routine R0148, 0 locals
Action routine for:
"hop over NOUN"
PRINT_RET "You would achieve nothing by this."
Routine R0149, 0 locals
Action routine for:
"attach NOUN"
"attach NOUN to NOUN"
PRINT_RET "You would achieve nothing by this."
Routine R0150, 0 locals
Action routine for:
"drink NOUN"
PRINT_RET "There's nothing suitable to drink here."
Routine R0151, 0 locals
Action routine for:
"fill NOUN"
PRINT_RET "But there's no water here to carry."
Routine R0152, 0 locals
Action routine for:
"sorry"
PRINT_RET "Oh, don't apologise."
Routine R0153, 0 locals
Action routine for:
"damn"
"damn SPECIAL"
PRINT_RET "Disgraceful! Once upon a time adventurers had moral
standards."
Routine R0154, 0 locals
Action routine for:
"bother"
"bother SPECIAL"
PRINT_RET "Quite."
Routine R0155, 0 locals
Action routine for:
"attack NOUN"
TEST_ATTR G1f,#03 [FALSE] L0001
CALL_VS R0042 (G1f,#40) -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RFALSE
L0001: PRINT_RET "Violence isn't the answer, you know."
Routine R0156, 0 locals
Action routine for:
"dive"
PRINT_RET "There's not enough water to swim in."
Routine R0157, 0 locals
Action routine for:
"swing NOUN"
"swing on NOUN"
PRINT_RET "There's nothing sensible to swing here."
Routine R0158, 0 locals
Action routine for:
"blow HELD"
PRINT_RET "You can't usefully blow that."
Routine R0159, 0 locals
Action routine for:
"clean NOUN"
PRINT_RET "You achieve nothing by this."
Routine R0160, 0 locals
Action routine for:
"adjust NOUN"
PRINT_RET "No, you can't set that."
Routine R0161, 0 locals
Action routine for:
"adjust NOUN to SPECIAL"
PRINT_RET "No, you can't set that to anything."
Routine R0162, 0 locals
Action routine for:
"wave"
PRINT_RET "You wave, feeling foolish."
Routine R0163, 0 locals
Action routine for:
"wave NOUN"
GET_PARENT G1f -> -(SP)
JE (SP)+,G08 [TRUE] L0001
PRINT_RET "But you aren't holding that."
L0001: PRINT "You look ridiculous waving "
CALL_2N R0063 (G1f)
PRINT_RET "."
Routine R0164, 0 locals
Action routine for:
"drag NOUN"
TEST_ATTR G1f,#17 [FALSE] L0001
PRINT_RET "It is fixed in place."
L0001: TEST_ATTR G1f,#15 [FALSE] L0002
PRINT_RET "You are unable to."
L0002: PRINT_RET "Nothing obvious happens."
Routine R0165, 0 locals
Action routine for:
"clear NOUN"
TEST_ATTR G1f,#17 [FALSE] L0001
PRINT_RET "It is fixed in place."
L0001: TEST_ATTR G1f,#15 [FALSE] L0002
PRINT_RET "You are unable to."
L0002: PRINT_RET "Nothing obvious happens."
Routine R0166, 1 local
GET_PARENT G20 -> -(SP)
JE (SP)+,#01 [TRUE] L0001
PRINT_RET "That's not a direction."
L0001: JE G20,#0a,#0b [FALSE] L0002
PRINT_RET "Not that way you can't."
L0002: CALL_1N R0043
STORE L00,G1f
CALL_VN R0040 (#24,G20)
INSERT_OBJ L00,G00
RTRUE
Routine R0167, 0 locals
Action routine for:
"clear NOUN NOUN"
PRINT_RET "Is that the best you can think of?"
Routine R0168, 0 locals
Action routine for:
"rotate NOUN"
TEST_ATTR G1f,#17 [FALSE] L0001
PRINT_RET "It is fixed in place."
L0001: TEST_ATTR G1f,#15 [FALSE] L0002
PRINT_RET "You are unable to."
L0002: PRINT_RET "Nothing obvious happens."
Routine R0169, 0 locals
Action routine for:
"squash NOUN"
TEST_ATTR G1f,#03 [FALSE] L0001
PRINT_RET "Keep your hands to yourself."
L0001: PRINT_RET "You achieve nothing by this."
Routine R0170, 0 locals
Action routine for:
"discard HELD at NOUN"
"discard HELD against NOUN"
TEST_ATTR G20,#03 [TRUE] L0001
PRINT_RET "Futile."
L0001: CALL_VS R0042 (G20,#1e) -> -(SP)
JE (SP)+,#00 [TRUE] L0002
RFALSE
L0002: PRINT_RET "You lack the nerve when it comes to the crucial
moment."
Routine R0171, 0 locals
Action routine for:
"answer SPECIAL to CREATURE"
STORE G1c,G22
CALL_VS R0042 (G20,#42) -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RFALSE
L0001: PRINT_RET "No reply."
Routine R0172, 0 locals
Action routine for:
"buy SPECIAL"
PRINT_RET "Nothing is on sale."
Routine R0173, 0 locals
Action routine for:
"ask CREATURE about SPECIAL"
STORE G1c,G22
CALL_VS R0042 (G1f,#43) -> -(SP)
JE (SP)+,#00 [TRUE] L0001
RFALSE
L0001: PRINT_RET "No reply."
Routine R0174, 0 locals
Action routine for:
"sing"
RANDOM #02 -> -(SP)
JE (SP)+,#01 [FALSE] L0001
PRINT "Your yodelling "
JUMP L0002
L0001: PRINT "Your singing "
L0002: PRINT_RET "is atrocious, if you say so yourself."
Routine R0175, 0 locals
Action routine for:
"climb NOUN"
PRINT_RET "I don't think much is to be achieved by that."
Routine R0176, 0 locals
Action routine for:
"wait"
CALL_1S R0044 -> -(SP)
JE (SP)+,#01 [FALSE] L0001
RTRUE
L0001: PRINT_RET "Time passes."
Routine R0177, 0 locals
Action routine for:
"nap"
PRINT_RET "You must have slept yourself out. You certainly aren't
drowsy now."
Routine R0178, 0 locals
Action routine for:
"l up SPECIAL"
"consult NOUN about SPECIAL"
PRINT "There's nothing to be discovered"
JE G1f,#00 [FALSE] L0001
PRINT_RET "."
L0001: PRINT " by consulting "
CALL_2N R0063 (G1f)
PRINT_RET "."
Routine R0179, 0 locals
JE G2b,#11 [FALSE] L0003
JE G00,#0018 [FALSE] L0001
GET_PROP G1e,#02 -> -(SP)
SUB G06,(SP)+ -> G06
L0001: ADD G06,#05 -> G06
TEST_ATTR G1f,#02 [TRUE] L0002
SET_ATTR G1f,#02
INC G7d
ADD G06,#02 -> G06
L0002: PRINT_RET "Taken!"
L0003: JE G2b,#1a [FALSE] L0004
SUB G06,#05 -> G06
JE G00,#0018 [FALSE] L0004
GET_PROP G1e,#02 -> -(SP)
ADD G06,(SP)+ -> G06
PRINT_RET "Safely deposited."
L0004: RFALSE
Routine R0180, 0 locals
JE G2b,#5a [FALSE] L0001
PRINT_RET "You have taken a drink from the stream. The water
tastes strongly of minerals, but is not unpleasant. It is extremely cold."
L0001: JE G2b,#11 [FALSE] L0003
GET_PARENT "small bottle" -> -(SP)
JE (SP)+,G08 [TRUE] L0002
PRINT_RET "You have nothing in which to carry the water."
L0002: CALL_VN R0040 (#5b,#001e)
RTRUE
L0003: JE G2b,#18 [FALSE] L0005
JE G20,#001e [FALSE] L0004
CALL_VN R0040 (#5b,#001e)
RTRUE
L0004: PRINT_RET "You have nothing in which to carry the water."
L0005: JE G2b,#fe [FALSE] L0009
JE G1f,#00b3 [FALSE] L0006
REMOVE_OBJ "ming vase"
INSERT_OBJ "some worthless shards of pottery",G00
SUB G06,#05 -> G06
PRINT_RET "The sudden change in temperature has delicately
shattered the vase."
L0006: JE G1f,#001e [FALSE] L0007
CALL_VN R0040 (#5b,#001e)
RTRUE
L0007: REMOVE_OBJ G1f
TEST_ATTR G1f,#00 [FALSE] L0008
SUB G06,#05 -> G06
L0008: CALL_2N R0064 (G1f)
PRINT_RET " washes away with the stream."
L0009: RFALSE
Routine R0181, 0 locals
JE G2b,#13 [FALSE] L0001
JE G1f,#0019,#001a [FALSE] L0001
PRINT_RET "The stream flows out through a pair of 1 foot diameter
sewer pipes. It would be advisable to use the exit."
L0001: JE G2b,#66 [FALSE] L0003
TEST_ATTR "In Debris Room",#1c [TRUE] L0002
RFALSE
L0002: CALL_2N R0076 (#002e)
RTRUE
L0003: JE G2b,#65 [FALSE] L0005
TEST_ATTR "At "Y2"",#1c [TRUE] L0004
RFALSE
L0004: CALL_2N R0076 (#0053)
RTRUE
L0005: RFALSE
Routine R0182, 0 locals
JE G2b,#44 [FALSE] L0001
PRINT_RET "Delicious!"
L0001: RFALSE
Routine R0183, 1 local
TEST_ATTR G1e,#11 [TRUE] L0001
CALL_2N R0054 (G1e)
RTRUE
L0001: GET_PROP G1e,#19 -> -(SP)
SUB (SP)+,#01 -> L00
PUT_PROP G1e,#19,L00
JE L00,#00 [FALSE] L0002
CLEAR_ATTR G1e,#11
CLEAR_ATTR G1e,#0d
L0002: GET_PARENT G1e -> -(SP)
JE (SP)+,G08 [TRUE] L0003
GET_PARENT G1e -> -(SP)
JE (SP)+,G00 [FALSE] L0010
L0003: JE L00,#00 [FALSE] L0006
PRINT "Your lamp has run out of power."
GET_PARENT "fresh batteries" -> -(SP)
JE (SP)+,G08 [TRUE] L0004
TEST_ATTR G00,#0d [TRUE] L0004
STORE G0c,#03
PRINT_RET " You can't explore the cave without a lamp. So let's
just call it a day."
JUMP L0005
L0004: CALL_1N R0186
L0005: NEW_LINE
RTRUE
L0006: JE L00,#1e [FALSE] L0010
PRINT "Your lamp is getting dim."
TEST_ATTR "fresh batteries",#0c [FALSE] L0007
PRINT_RET " You're also out of spare batteries. You'd best start
wrapping this up."
L0007: GET_PARENT "fresh batteries" -> -(SP)
JE (SP)+,#00f3 [FALSE] L0008
TEST_ATTR "Dead End, near Vending Machine",#1c [FALSE] L0008
PRINT_RET " You'd best start wrapping this up, unless you can
find some fresh batteries. I seem to recall there's a vending machine in the
maze. Bring some coins with you."
L0008: GET_PARENT "fresh batteries" -> -(SP)
JE (SP)+,#00f3 [TRUE] L0009
PRINT_RET " You'd best go back for those batteries."
L0009: NEW_LINE
RTRUE
L0010: RFALSE
Routine R0184, 0 locals
JE G2b,#28 [FALSE] L0003
PRINT "It is a shiny brass lamp"
TEST_ATTR G1e,#11 [TRUE] L0001
PRINT_RET ". It is not currently lit."
L0001: GET_PROP G1e,#19 -> -(SP)
JL (SP)+,#1e [FALSE] L0002
PRINT_RET ", glowing dimly."
L0002: PRINT_RET ", glowing brightly."
L0003: JE G2b,#59 [FALSE] L0004
CALL_VN R0040 (#3d,G1e)
RTRUE
L0004: JE G2b,#57 [FALSE] L0005
PRINT_RET "Rubbing the electric lamp is not particularly
rewarding. Anyway, nothing exciting happens."
L0005: JE G2b,#3d [FALSE] L0006
GET_PROP G1e,#19 -> -(SP)
JG (SP)+,#00 [TRUE] L0006
PRINT_RET "Unfortunately, the batteries seem to be dead."
L0006: JE G2b,#fe [FALSE] L0009
JE G1f,#00f5 [FALSE] L0007
PRINT_RET "Those batteries are dead; they won't do any good at
all."
L0007: JE G1f,#00f4 [FALSE] L0008
CALL_1N R0186
RTRUE
L0008: PRINT_RET "The only thing you might successfully put in the lamp
is a fresh pair of batteries."
L0009: RFALSE
Routine R0185, 0 locals
JE G2b,#3d [FALSE] L0001
SET_ATTR G1e,#0d
CALL_2N R0053 (G1e)
L0001: JE G2b,#3e [FALSE] L0002
CLEAR_ATTR G1e,#0d
L0002: RFALSE
Routine R0186, 0 locals
GET_PARENT "fresh batteries" -> -(SP)
JE (SP)+,G08 [TRUE] L0001
GET_PARENT "fresh batteries" -> -(SP)
JE (SP)+,G00 [FALSE] L0002
L0001: REMOVE_OBJ "fresh batteries"
SET_ATTR "fresh batteries",#0c
INSERT_OBJ "worn-out batteries",G00
PUT_PROP "brass lantern",#19,#09c4
PRINT_RET "I'm taking the liberty of replacing the batteries."
L0002: RTRUE
Routine R0187, 0 locals
JE G2b,#ff [FALSE] L0001
GET_PARENT G1f -> -(SP)
JE (SP)+,#1e [FALSE] L0001
PRINT_RET "You're holding that already (in the bottle)."
L0001: JE G2b,#fe [FALSE] L0003
JE G1f,#12,#0081 [FALSE] L0002
CALL_VN R0040 (#5b,G1e)
RTRUE
JUMP L0003
L0002: PRINT_RET "The bottle is only supposed to hold liquids."
L0003: JE G2b,#5b [FALSE] L0009
GET_CHILD "small bottle" -> -(SP) [TRUE] L0004
L0004: JE (SP)+,#00 [TRUE] L0005
PRINT_RET "The bottle is full already."
L0005: GET_PARENT "stream" -> -(SP)
JE (SP)+,G00 [TRUE] L0006
GET_PARENT "spring" -> -(SP)
JE (SP)+,G00 [FALSE] L0007
L0006: INSERT_OBJ "bottled water","small bottle"
PRINT_RET "The bottle is now full of water."
L0007: GET_PARENT "pool of oil" -> -(SP)
JE (SP)+,G00 [FALSE] L0008
INSERT_OBJ "bottled oil","small bottle"
PRINT_RET "The bottle is now full of oil."
L0008: PRINT_RET "There is nothing here with which to fill the bottle."
L0009: JE G2b,#1b [FALSE] L0013
GET_CHILD "small bottle" -> -(SP) [TRUE] L0010
L0010: JE (SP)+,#00 [FALSE] L0011
PRINT_RET "The bottle is already empty!"
L0011: GET_CHILD "small bottle" -> -(SP) [TRUE] L0012
L0012: REMOVE_OBJ (SP)+
PRINT_RET "Your bottle is now empty and the ground is now wet."
L0013: RFALSE
Routine R0188, 0 locals
JE G2b,#5a [FALSE] L0001
REMOVE_OBJ "bottled water"
CALL_VN R0040 (#5a,#12)
RTRUE
L0001: RFALSE
Routine R0189, 0 locals
JE G2b,#5a [FALSE] L0001
CALL_VN R0040 (#5a,#0081)
RTRUE
L0001: RFALSE
Routine R0190, 0 locals
RANDOM #02 -> -(SP)
JE (SP)+,#01 [FALSE] L0001
CALL_VN R0076 (#0022,#01)
L0001: RFALSE
Routine R0191, 0 locals
JE G2b,#13 [FALSE] L0001
JE G1f,#0026 [FALSE] L0001
PRINT_RET "You don't fit through a two-inch slit!"
L0001: JE G2b,#24 [FALSE] L0002
JE G1f,#0b,#0d [FALSE] L0002
PRINT_RET "You don't fit through a two-inch slit!"
L0002: RFALSE
Routine R0192, 0 locals
TEST_ATTR "steel grate",#0f [TRUE] L0001
TEST_ATTR "steel grate",#12 [TRUE] L0001
PRINT "(First opening the grate)
"
SET_ATTR "steel grate",#12
L0001: RET #0029
Routine R0193, 0 locals
JE G00,#002a [FALSE] L0001
RET #0e
L0001: RET #0f
Routine R0194, 0 locals
JE G00,#002a [FALSE] L0001
RET #27
L0001: RET #002a
Routine R0195, 0 locals
TEST_ATTR G1e,#12 [FALSE] L0001
PRINT_RET "
The grate stands open."
L0001: TEST_ATTR G1e,#0f [TRUE] L0002
PRINT_RET "
The grate is unlocked but shut."
L0002: RTRUE
Routine R0196, 0 locals
JE G2b,#2c [FALSE] L0002
GET_PARENT "little bird" -> -(SP)
JE (SP)+,G1e [TRUE] L0001
RFALSE
L0001: PRINT "(releasing the little bird)
"
CALL_VN R0040 (#62,#0034)
RTRUE
L0002: RFALSE
Routine R0197, 0 locals
JE G2b,#66 [FALSE] L0001
CALL_2N R0076 (#18)
RTRUE
L0001: RFALSE
Routine R0198, 0 locals
JE G2b,#36 [FALSE] L0005
JE G00,#0041,#0040 [FALSE] L0004
JE G7b,#01 [FALSE] L0001
PRINT_RET "Peculiar. Nothing happens."
L0001: GET_PARENT "crystal bridge" -> -(SP)
JE (SP)+,#00 [TRUE] L0002
REMOVE_OBJ "crystal bridge"
SET_ATTR "crystal bridge",#0b
PUT_PROP "West Side of Fissure",#08,#00
PUT_PROP "On East Bank of Fissure",#09,#00
PRINT_RET "The crystal bridge has vanished!"
JUMP L0003
L0002: INSERT_OBJ "crystal bridge",G00
CLEAR_ATTR "crystal bridge",#0b
PUT_PROP "West Side of Fissure",#08,#0042
PUT_PROP "On East Bank of Fissure",#09,#0042
PRINT_RET "A crystal bridge now spans the fissure."
L0003: JUMP L0005
L0004: PRINT_RET "Nothing happens."
L0005: RFALSE
Routine R0199, 0 locals
JE G2b,#28 [FALSE] L0002
GET_PARENT "little bird" -> -(SP)
JE (SP)+,#2d [FALSE] L0001
PRINT_RET "The little bird looks unhappy in the cage."
L0001: PRINT_RET "The cheerful little bird is sitting here singing."
L0002: JE G2b,#18 [FALSE] L0004
JE G20,#2d [FALSE] L0003
CALL_VN R0040 (#61,G1e)
RTRUE
JUMP L0004
L0003: PRINT "Don't put the poor bird in "
CALL_2N R0063 (G20)
PRINT_RET "!"
L0004: JE G2b,#1a,#12 [FALSE] L0005
GET_PARENT "little bird" -> -(SP)
JE (SP)+,#2d [FALSE] L0005
PRINT "(The bird is released from the cage)
"
CALL_VN R0040 (#62,G1e)
RTRUE
L0005: JE G2b,#11,#61 [FALSE] L0009
GET_PARENT "little bird" -> -(SP)
JE (SP)+,#2d [FALSE] L0006
PRINT_RET "You already have the little bird. If you take it out of
the cage it will likely fly away from you."
L0006: GET_PARENT "wicker cage" -> -(SP)
JE (SP)+,G08 [TRUE] L0007
PRINT_RET "You can catch the bird, but you cannot carry it."
L0007: GET_PARENT "black rod with a rusty star on the end" -> -(SP)
JE (SP)+,G08 [FALSE] L0008
PRINT_RET "The bird was unafraid when you entered, but as you
approach it becomes disturbed and you cannot catch it."
L0008: INSERT_OBJ "little bird","wicker cage"
CLEAR_ATTR "wicker cage",#12
PRINT_RET "You catch the bird in the wicker cage."
L0009: JE G2b,#62 [FALSE] L0013
GET_PARENT "little bird" -> -(SP)
JE (SP)+,#2d [TRUE] L0010
PRINT_RET "The bird is not caged now."
L0010: SET_ATTR "wicker cage",#12
INSERT_OBJ "little bird",G00
GET_PARENT "snake" -> -(SP)
JE (SP)+,G00 [FALSE] L0011
REMOVE_OBJ "snake"
PRINT_RET "The little bird attacks the green snake, and in an
astounding flurry drives the snake away."
L0011: GET_PARENT "dragon" -> -(SP)
JE (SP)+,G00 [FALSE] L0012
REMOVE_OBJ "little bird"
PRINT_RET "The little bird attacks the green dragon, and in an
astounding flurry gets burnt to a cinder. The ashes blow away."
L0012: PRINT_RET "The little bird flies free."
L0013: RFALSE
Routine R0200, 0 locals
JE G2b,#20 [FALSE] L0001
PRINT_RET "It's not hungry. (It's merely pinin' for the fjords).
Besides, I suspect it would prefer bird seed."
L0001: JE G2b,#fd,#43,#42 [FALSE] L0002
PRINT_RET "Cheep! Chirp!"
L0002: JE G2b,#40 [FALSE] L0004
GET_PARENT "little bird" -> -(SP)
JE (SP)+,#2d [FALSE] L0003
PRINT_RET "Oh, leave the poor unhappy bird alone."
L0003: REMOVE_OBJ "little bird"
PRINT_RET "The little bird is now dead. Its body disappears."
L0004: RFALSE
Routine R0201, 0 locals
GET_PARENT "large gold nugget" -> -(SP)
JE (SP)+,G08 [FALSE] L0001
STORE G0c,#01
PRINT_RET "You are at the bottom of the pit with a broken neck."
L0001: RET #0039
Routine R0202, 0 locals
JE G2b,#13 [FALSE] L0001
JE G1f,#0037 [FALSE] L0001
PRINT_RET "The crack is far too small for you to follow."
L0001: RFALSE
Routine R0203, 0 locals
TEST_ATTR G1e,#0c [FALSE] L0001
RFALSE
L0001: ADD G06,#19 -> G06
SET_ATTR G1e,#0c
RFALSE
Routine R0204, 0 locals
GET_PARENT "large gold nugget" -> -(SP)
JE (SP)+,G08 [FALSE] L0001
PRINT_RET "The dome is unclimbable."
L0001: RET #35
Routine R0205, 0 locals
JE G2b,#28 [FALSE] L0002
GET_PARENT "large gold nugget" -> -(SP)
JE (SP)+,G08 [FALSE] L0001
PRINT_RET "I'm not sure you'll be able to get up it with what
you're carrying."
L0001: PRINT_RET "It looks like you might be able to climb up it."
L0002: JE G2b,#47 [FALSE] L0003
CALL_2N R0077 (#0a)
RTRUE
L0003: RFALSE
Routine R0206, 0 locals
JE G2b,#5d [FALSE] L0002
TEST_ATTR "crystal bridge",#0b [TRUE] L0001
PRINT_RET "I respectfully suggest you go across the bridge instead
of jumping."
L0001: STORE G0c,#01
PRINT_RET "You didn't make it."
L0002: RFALSE
Routine R0207, 0 locals
JE G2b,#24 [FALSE] L0001
JE G00,#41 [FALSE] L0001
JE G1f,#02 [FALSE] L0001
PRINT "You have crawled through a very low wide passage
parallel to and north of the hall of mists.
"
L0001: RFALSE
Routine R0208, 0 locals
JE G00,#41 [FALSE] L0001
RET #08
L0001: RET #09
Routine R0209, 0 locals
JE G00,#41 [FALSE] L0001
RET #40
L0001: RET #41
Routine R0210, 0 locals
JE G2b,#24 [FALSE] L0001
JE G1f,#02 [FALSE] L0001
PRINT "You have crawled through a very low wide passage
parallel to and north of the hall of mists.
"
L0001: RFALSE
Routine R0211, 0 locals
JE G2b,#24 [FALSE] L0002
GET_PARENT "snake" -> -(SP)
JE (SP)+,#00 [TRUE] L0002
JE G1f,#02,#03,#05 [TRUE] L0001
JE G1f,#09 [FALSE] L0002
RANDOM #64 -> -(SP)
JG (SP)+,#23 [TRUE] L0002
L0001: PRINT_RET "You can't get by the snake."
L0002: RFALSE
Routine R0212, 0 locals
JE G2b,#fd,#43,#42 [FALSE] L0001
PRINT_RET "Hiss!"
L0001: JE G2b,#1e [FALSE] L0003
JE G1f,#00f7 [FALSE] L0002
CALL_VN R0040 (#40,G1e)
RTRUE
L0002: CALL_VN R0040 (#20,G1f,G1e)
RTRUE
L0003: JE G2b,#20 [FALSE] L0005
JE G1f,#34 [FALSE] L0004
REMOVE_OBJ "little bird"
PRINT_RET "The snake has now devoured your bird."
L0004: PRINT_RET "There's nothing here it wants to eat (except perhaps
you)."
L0005: JE G2b,#40 [FALSE] L0006
PRINT_RET "Attacking the snake both doesn't work and is very
dangerous."
L0006: JE G2b,#11 [FALSE] L0007
STORE G0c,#01
PRINT_RET "It takes you instead. Glrp!"
L0007: RFALSE
Routine R0213, 0 locals
JE G2b,#27 [FALSE] L0001
RANDOM #64 -> -(SP)
JG (SP)+,#19 [TRUE] L0001
PRINT "
A hollow voice says, "Plugh."
"
L0001: RFALSE
Routine R0214, 0 locals
JE G2b,#65 [FALSE] L0001
CALL_2N R0076 (#18)
RTRUE
L0001: JE G2b,#67 [FALSE] L0004
TEST_ATTR "Plover Room",#1c [TRUE] L0002
RFALSE
L0002: GET_PARENT "emerald the size of a plover's egg" -> -(SP)
JE (SP)+,G08 [FALSE] L0003
INSERT_OBJ "emerald the size of a plover's egg","Plover Room"
L0003: CALL_2N R0076 (#00b8)
RTRUE
L0004: RFALSE
Routine R0215, 0 locals
JE G2b,#35 [FALSE] L0001
PRINT_RET "The shadowy figure waves back at you!"
L0001: RFALSE
Routine R0216, 0 locals
JE G2b,#47,#13 [FALSE] L0001
CALL_2N R0077 (#0b)
RTRUE
L0001: RFALSE
Routine R0217, 0 locals
JE G2b,#47 [FALSE] L0001
CALL_2N R0077 (#0b)
RTRUE
L0001: RFALSE
Routine R0218, 0 locals
JE G2b,#47 [FALSE] L0001
CALL_2N R0077 (#0b)
RTRUE
L0001: RFALSE
Routine R0219, 1 local
JE G2b,#24 [FALSE] L0008
JE G1f,#03,#0b [FALSE] L0001
RANDOM #64 -> -(SP)
JG (SP)+,#50 [TRUE] L0001
STORE L00,#01
L0001: JE G1f,#0a [FALSE] L0002
RANDOM #64 -> -(SP)
JG (SP)+,#50 [TRUE] L0002
STORE L00,#01
L0002: JE G1f,#0a [FALSE] L0003
RANDOM #64 -> -(SP)
JG (SP)+,#32 [TRUE] L0003
STORE L00,#0087
L0003: JE G1f,#02 [FALSE] L0004
RANDOM #64 -> -(SP)
JG (SP)+,#3c [TRUE] L0004
STORE L00,#01
L0004: JE G1f,#02 [FALSE] L0005
RANDOM #64 -> -(SP)
JG (SP)+,#4b [TRUE] L0005
STORE L00,#0089
L0005: JE L00,#01 [FALSE] L0006
PRINT_RET "You have crawled around in some little holes and wound
up back in the main passage."
L0006: JE L00,#00 [FALSE] L0007
RFALSE
L0007: CALL_2N R0076 (L00)
RTRUE
L0008: RFALSE
Routine R0220, 0 locals
JE G2b,#24 [FALSE] L0003
JE G1f,#03 [FALSE] L0001
RANDOM #64 -> -(SP)
JG (SP)+,#50 [FALSE] L0002
L0001: JE G1f,#07 [FALSE] L0003
RANDOM #64 -> -(SP)
JG (SP)+,#32 [TRUE] L0003
L0002: PRINT_RET "You have crawled around in some little holes and wound
up back in the main passage."
L0003: RFALSE
Routine R0221, 0 locals
JE G2b,#2a,#3a,#39 [TRUE] L0001
JE G2b,#11 [FALSE] L0002
L0001: PRINT_RET "Surely you're joking."
L0002: RFALSE
Routine R0222, 0 locals
JE G2b,#13 [FALSE] L0001
JE G1f,#007b [FALSE] L0001
PRINT_RET "It is too far up for you to reach."
L0001: RFALSE
Routine R0223, 0 locals
GET_PROP "plant",#19 -> -(SP)
JE (SP)+,#01 [FALSE] L0001
PRINT_RET "The top of a 12-foot-tall beanstalk is poking out of
the west pit."
L0001: PRINT_RET "There is a huge beanstalk growing out of the west pit
up to the hole."
Routine R0224, 0 locals
JE G2b,#28 [FALSE] L0001
CALL_VN R0039 (G1e,#14)
RTRUE
L0001: JE G2b,#47 [FALSE] L0002
GET_PROP "plant",#19 -> -(SP)
JE (SP)+,#02 [FALSE] L0002
CALL_VN R0040 (#47,#007d)
RTRUE
L0002: RFALSE
Routine R0225, 0 locals
JE G2b,#47 [FALSE] L0003
JE G1f,#007d [FALSE] L0001
RFALSE
L0001: GET_PROP "plant",#19 -> -(SP)
JL (SP)+,#01 [TRUE] L0002
GET_PROP "plant",#19 -> -(SP)
JG (SP)+,#02 [FALSE] L0003
L0002: PRINT_RET "There is nothing here to climb. Use "up" or "out" to
leave the pit."
L0003: RFALSE
Routine R0226, 0 locals
GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#00 [FALSE] L0001
PRINT_RET "There is a tiny little plant in the pit, murmuring
"Water, water, ...""
L0001: GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#01 [FALSE] L0002
PRINT_RET "There is a 12-foot-tall beanstalk stretching up out of
the pit, bellowing "Water!! Water!!""
L0002: GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#02 [FALSE] L0003
PRINT_RET "There is a gigantic beanstalk stretching all the way up
to the hole."
L0003: RFALSE
Routine R0227, 1 local
JE G2b,#47 [FALSE] L0003
GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#00 [FALSE] L0001
PRINT_RET "It's just a little plant!"
L0001: GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#01 [FALSE] L0002
PRINT "You have climbed up the plant and out of the pit.
"
CALL_2N R0076 (#79)
RTRUE
L0002: GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#02 [FALSE] L0003
PRINT "You clamber up the plant and scurry through the hole at
the top.
"
CALL_2N R0076 (#00a0)
RTRUE
L0003: JE G2b,#11 [FALSE] L0004
PRINT_RET "The plant has exceptionally deep roots and cannot be
pulled free."
L0004: JE G2b,#63 [FALSE] L0012
GET_PARENT "small bottle" -> -(SP)
JE (SP)+,G08 [TRUE] L0005
PRINT_RET "You have nothing to water the plant with."
L0005: GET_CHILD "small bottle" -> L00 [TRUE] L0006
L0006: JE L00,#00 [FALSE] L0007
PRINT_RET "The bottle is empty."
L0007: REMOVE_OBJ L00
JE L00,#20 [FALSE] L0008
PRINT_RET "The plant indignantly shakes the oil off its leaves and
asks, "Water?""
L0008: GET_PROP G1e,#19 -> -(SP)
ADD (SP)+,#01 -> -(SP)
PUT_PROP G1e,#19,(SP)+
CLEAR_ATTR "beanstalk",#0b
GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#01 [FALSE] L0009
PRINT "The plant spurts into furious growth for a few seconds.
"
L0009: GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#02 [FALSE] L0010
PRINT "The plant grows explosively, almost filling the bottom
of the pit.
"
L0010: GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#03 [FALSE] L0011
PRINT "You've over-watered the plant! It's shriveling up!
It's, it's...
"
SET_ATTR "beanstalk",#0b
REMOVE_OBJ "beanstalk"
PUT_PROP G1e,#19,#00
L0011: CALL_VN R0040 (#28,G1e)
RTRUE
L0012: JE G2b,#64 [FALSE] L0013
CALL_VN R0040 (#63,G1e)
RTRUE
L0013: JE G2b,#28 [FALSE] L0014
CALL_VN R0039 (G1e,#14)
RTRUE
L0014: RFALSE
Routine R0228, 0 locals
JE G2b,#2a,#3a,#39 [TRUE] L0001
JE G2b,#11 [FALSE] L0002
L0001: PRINT_RET "Surely you're joking."
L0002: RFALSE
Routine R0229, 0 locals
JE G2b,#5a [FALSE] L0001
PRINT_RET "Absolutely not."
L0001: JE G2b,#11 [FALSE] L0003
GET_PARENT "small bottle" -> -(SP)
JE (SP)+,G08 [TRUE] L0002
PRINT_RET "You have nothing in which to carry the oil."
L0002: CALL_VN R0040 (#5b,#1e)
RTRUE
L0003: JE G2b,#18 [FALSE] L0005
JE G20,#1e [FALSE] L0004
CALL_VN R0040 (#5b,#1e)
RTRUE
L0004: PRINT_RET "You have nothing in which to carry the oil."
L0005: RFALSE
Routine R0230, 0 locals
JE G2b,#2a,#3a,#39 [TRUE] L0001
JE G2b,#11 [FALSE] L0002
L0001: PRINT_RET "Surely you're joking."
L0002: RFALSE
Routine R0231, 0 locals
JE G2b,#24 [FALSE] L0001
JE G1f,#03 [FALSE] L0001
STORE G7c,G1e
L0001: RFALSE
Routine R0232, 0 locals
JE G2b,#24 [FALSE] L0001
JE G1f,#05 [FALSE] L0001
STORE G7c,G1e
L0001: RFALSE
Routine R0233, 0 locals
RANDOM #64 -> -(SP)
JG (SP)+,#28 [TRUE] L0001
RET #67
L0001: RANDOM #64 -> -(SP)
JG (SP)+,#32 [TRUE] L0002
RET #6d
L0002: RET #65
Routine R0234, 0 locals
JE G2b,#5d,#47 [FALSE] L0001
CALL_VN R0040 (#24,#0b)
RTRUE
L0001: RFALSE
Routine R0235, 0 locals
JE G2b,#2a,#3a,#11 [FALSE] L0001
PRINT_RET "Do get a grip on yourself."
L0001: RFALSE
Routine R0236, 0 locals
JE G7c,#8b [FALSE] L0001
RET G7c
L0001: GET_PARENT "dragon" -> -(SP)
JE (SP)+,G00 [FALSE] L0002
PRINT_RET "The dragon looks rather nasty. You'd best not try to
get by."
L0002: RET #8b
Routine R0237, 0 locals
JE G7c,#86 [FALSE] L0001
RET G7c
L0001: GET_PARENT "dragon" -> -(SP)
JE (SP)+,G00 [FALSE] L0002
PRINT_RET "The dragon looks rather nasty. You'd best not try to
get by."
L0002: RET #86
Routine R0238, 0 locals
RET G7c
Routine R0239, 0 locals
JE G1b,#30 [FALSE] L0001
TEST_ATTR "dragon",#0c [FALSE] L0001
REMOVE_OBJ "dragon"
INSERT_OBJ "dragon's body",G00
CLEAR_ATTR "dragon",#0c
PRINT_RET "Congratulations! You have just vanquished a dragon
with your bare hands! (Unbelievable, isn't it?)"
L0001: JE G1b,#31 [FALSE] L0002
TEST_ATTR "dragon",#0c [FALSE] L0002
CLEAR_ATTR "dragon",#0c
PRINT_RET "I should think not."
L0002: CLEAR_ATTR "dragon",#0c
RFALSE
Routine R0240, 0 locals
JE G2b,#40 [FALSE] L0001
SET_ATTR "dragon",#0c
PRINT_RET "With what? Your bare hands?"
L0001: JE G2b,#20 [FALSE] L0002
PRINT_RET "The dragon is implacable."
L0002: JE G2b,#1e [FALSE] L0004
JE G1f,#00f7 [TRUE] L0003
PRINT_RET "You'd probably be better off using your bare hands than
that thing!"
L0003: INSERT_OBJ "dwarvish axe",G00
PRINT_RET "The axe bounces harmlessly off the dragon's thick
scales."
L0004: RFALSE
Routine R0241, 0 locals
JE G2b,#11 [FALSE] L0001
GET_PARENT "dragon" -> -(SP)
JE (SP)+,G00 [FALSE] L0001
PRINT_RET "You'll need to get the dragon to move first!"
L0001: RFALSE
Routine R0242, 0 locals
GET_PARENT "dragon" -> -(SP)
JE (SP)+,G00 [FALSE] L0001
PRINT_RET "The dragon is sprawled out on the Persian rug!"
L0001: PRINT_RET "The Persian rug is spread out on the floor here."
Routine R0243, 0 locals
JE G2b,#40 [FALSE] L0001
PRINT_RET "You've already done enough damage!"
L0001: RFALSE
Routine R0244, 0 locals
CALL_2N R0054 (#00f8)
GET_PARENT "treasure chest" -> -(SP)
JE (SP)+,G1e [FALSE] L0001
TEST_ATTR "treasure chest",#10 [TRUE] L0001
PRINT_RET "You've found the pirate's treasure chest!"
L0001: RFALSE
Routine R0245, 0 locals
JE G2b,#5d [FALSE] L0001
STORE G0c,#01
PRINT_RET "You fall and break your neck!"
L0001: RFALSE
Routine R0246, 0 locals
TEST_ATTR "rusty door",#0f [FALSE] L0001
CALL_VN R0040 (#2c,#00a8)
RTRUE
L0001: TEST_ATTR "rusty door",#12 [TRUE] L0002
SET_ATTR "rusty door",#12
PRINT "(first wrenching the door open)
"
L0002: RET #00a8
Routine R0247, 0 locals
JE G2b,#2c [FALSE] L0001
TEST_ATTR "rusty door",#0f [FALSE] L0001
PRINT_RET "The hinges are quite thoroughly rusted now and won't
budge."
L0001: JE G2b,#2e [FALSE] L0003
TEST_ATTR "rusty door",#12 [FALSE] L0002
PRINT_RET "With all the effort it took to get the door open, I
wouldn't suggest closing it again."
L0002: PRINT_RET "No problem there -- it already is."
L0003: JE G2b,#64 [FALSE] L0005
GET_PARENT "small bottle" -> -(SP)
JE (SP)+,G08 [FALSE] L0004
GET_PARENT "bottled oil" -> -(SP)
JE (SP)+,#1e [FALSE] L0004
REMOVE_OBJ "bottled oil"
CLEAR_ATTR "rusty door",#0f
SET_ATTR "rusty door",#13
PRINT_RET "The oil has freed up the hinges so that the door will
now move, although it requires some effort."
JUMP L0005
L0004: PRINT_RET "You have nothing to oil it with."
L0005: JE G2b,#63 [FALSE] L0007
GET_PARENT "small bottle" -> -(SP)
JE (SP)+,G08 [FALSE] L0006
GET_PARENT "bottled water" -> -(SP)
JE (SP)+,#1e [FALSE] L0006
REMOVE_OBJ "bottled water"
SET_ATTR "rusty door",#0f
CLEAR_ATTR "rusty door",#12
PRINT_RET "The hinges are quite thoroughly rusted now and won't
budge."
JUMP L0007
L0006: PRINT_RET "You have nothing to water it with."
L0007: RFALSE
Routine R0248, 0 locals
JE G2b,#2c [FALSE] L0001
PRINT_RET "The door heaves open with a shower of rust."
L0001: RFALSE
Routine R0249, 0 locals
JE G2b,#11 [FALSE] L0001
PRINT_RET "Now don't go ripping up the place!"
L0001: JE G2b,#2a,#29 [FALSE] L0002
PRINT_RET "You don't find anything exciting behind the curtains."
L0002: RFALSE
Routine R0250, 0 locals
JE G2b,#11 [FALSE] L0001
PRINT_RET "It crumbles to nothing in your hands."
L0001: JE G2b,#44 [FALSE] L0002
PRINT_RET "Eeeewwwww."
L0002: RFALSE
Routine R0251, 0 locals
JE G2b,#1a [FALSE] L0002
GET_PARENT "velvet pillow" -> -(SP)
JE (SP)+,G00 [FALSE] L0001
PRINT "(coming to rest, delicately, on the velvet pillow)
"
RFALSE
L0001: REMOVE_OBJ "ming vase"
INSERT_OBJ "some worthless shards of pottery",G00
PRINT_RET "The ming vase drops with a delicate crash."
L0002: JE G2b,#40 [FALSE] L0003
REMOVE_OBJ "ming vase"
INSERT_OBJ "some worthless shards of pottery",G00
PRINT_RET "You have taken the vase and hurled it delicately to the
ground."
L0003: JE G2b,#fe [FALSE] L0004
PRINT_RET "The vase is too fragile to use as a container."
L0004: RFALSE
Routine R0252, 1 local
STORE Gef,#00
GET_CHILD G08 -> -(SP) [FALSE] L0002
L0001: INC Gef
GET_SIBLING (SP)+ -> -(SP) [TRUE] L0001
L0002: ADD (SP)+,Gef -> -(SP)
STORE L00,(SP)+
JE L00,#00 [TRUE] L0003
JE L00,#01 [FALSE] L0004
GET_PARENT "emerald the size of a plover's egg" -> -(SP)
JE (SP)+,G08 [FALSE] L0004
L0003: RET #00b8
L0004: PRINT_RET "Something you're carrying won't fit through the tunnel
with you. You'd best take inventory and drop something."
Routine R0253, 1 local
STORE Gef,#00
GET_CHILD G08 -> -(SP) [FALSE] L0002
L0001: INC Gef
GET_SIBLING (SP)+ -> -(SP) [TRUE] L0001
L0002: ADD (SP)+,Gef -> -(SP)
STORE L00,(SP)+
JE L00,#00 [TRUE] L0003
JE L00,#01 [FALSE] L0004
GET_PARENT "emerald the size of a plover's egg" -> -(SP)
JE (SP)+,G08 [FALSE] L0004
L0003: RET #b7
L0004: PRINT_RET "Something you're carrying won't fit through the tunnel
with you. You'd best take inventory and drop something."
Routine R0254, 0 locals
JE G2b,#67 [FALSE] L0002
GET_PARENT "emerald the size of a plover's egg" -> -(SP)
JE (SP)+,G08 [FALSE] L0001
INSERT_OBJ "emerald the size of a plover's egg","Plover Room"
L0001: CALL_2N R0076 (#53)
RTRUE
L0002: RFALSE
Routine R0255, 0 locals
GET_PARENT "giant clam" -> -(SP)
JE (SP)+,G08 [FALSE] L0002
TEST_ATTR "giant clam",#12 [FALSE] L0001
PRINT_RET "You can't fit this five-foot oyster through that little
passage!"
JUMP L0002
L0001: PRINT_RET "You can't fit this five-foot clam through that little
passage!"
L0002: RET #75
Routine R0256, 0 locals
TEST_ATTR G1e,#0c [FALSE] L0001
PRINT_RET "There is an enormous oyster here with its shell tightly
closed."
L0001: PRINT_RET "There is an enormous clam here with its shell tightly
closed."
Routine R0257, 0 locals
JE G2b,#28 [FALSE] L0002
JE G00,#00fb,#00ff [FALSE] L0001
PRINT_RET "Interesting. There seems to be something written on the
underside of the oyster:
"There is something strange about this place, such that one of the words I've
always known now has a new effect.""
L0001: PRINT_RET "A giant bivalve of some kind."
L0002: JE G2b,#2c [FALSE] L0003
PRINT_RET "You aren't strong enough to open the clam with your
bare hands."
L0003: JE G2b,#2d [FALSE] L0006
JE G20,#ab [TRUE] L0004
CALL_2N R0064 (#ab)
PRINT_RET " isn't strong enough to open the clam."
L0004: TEST_ATTR G1e,#0c [FALSE] L0005
PRINT_RET "The oyster creaks open, revealing nothing but oyster
inside. It promptly snaps shut again."
L0005: SET_ATTR G1e,#0c
INSERT_OBJ "glistening pearl","Cul-de-Sac"
PRINT_RET "A glistening pearl falls out of the clam and rolls
away. Goodness, this must really be an oyster. (I never was very good at
identifying bivalves.) Whatever it is, it has now snapped shut again."
L0006: JE G2b,#40 [FALSE] L0007
PRINT_RET "The shell is very strong and is impervious to attack."
L0007: RFALSE
Routine R0258, 0 locals
JE G2b,#11 [FALSE] L0001
PRINT_RET "It's hanging way above your head."
L0001: RFALSE
Routine R0259, 0 locals
JE G2b,#11 [FALSE] L0001
JE G00,#00c6 [FALSE] L0001
SUB G06,#01 -> G06
L0001: JE G2b,#1a [FALSE] L0002
JE G00,#00c6 [FALSE] L0002
ADD G06,#01 -> G06
PRINT_RET "You really are at wit's end."
L0002: RFALSE
Routine R0260, 0 locals
JE G2b,#24 [FALSE] L0002
JE G1f,#05 [TRUE] L0001
RANDOM #64 -> -(SP)
JG (SP)+,#5f [TRUE] L0001
PRINT_RET "You have crawled around in some little holes and wound
up back in the main passage."
L0001: CALL_2N R0076 (#c3)
RTRUE
L0002: RFALSE
Routine R0261, 0 locals
JE G2b,#40,#12 [FALSE] L0001
PRINT_RET "You can't reach it from here."
L0001: RFALSE
Routine R0262, 0 locals
JE G2b,#5d [FALSE] L0001
STORE G0c,#01
PRINT_RET "You jump and break your neck!"
L0001: JE G2b,#35 [FALSE] L0002
PRINT_RET "The shadowy figure waves back at you!"
L0002: RFALSE
Routine R0263, 0 locals
JE G2b,#4a [FALSE] L0001
PRINT_RET "The water is icy cold, and you would soon freeze to
death."
L0001: RFALSE
Routine R0264, 0 locals
JE G2b,#5d [FALSE] L0002
GET_PARENT "rickety bridge" -> -(SP)
JE (SP)+,G1e [FALSE] L0001
PRINT_RET "I respectfully suggest you go across the bridge instead
of jumping."
L0001: STORE G0c,#01
PRINT_RET "You didn't make it."
L0002: RFALSE
Routine R0265, 0 locals
TEST_ATTR "burly troll",#0c [TRUE] L0001
GET_PARENT "burly troll" -> -(SP)
JE (SP)+,#00 [FALSE] L0003
L0001: CLEAR_ATTR "burly troll",#0c
TEST_ATTR "large cave bear",#0c [FALSE] L0002
REMOVE_OBJ "large cave bear"
REMOVE_OBJ G1e
CLEAR_ATTR "wreckage of bridge",#0b
REMOVE_OBJ "rickety bridge"
SET_ATTR "rickety bridge",#0b
CALL_2N R0054 (#00e4)
STORE G0c,#01
PRINT_RET "Just as you reach the other side, the bridge buckles
beneath the weight of the bear, which was still following you around. You
scrabble desperately for support, but as the bridge collapses you stumble back
and fall into the chasm."
L0002: RET #00cd
L0003: GET_PARENT "burly troll" -> -(SP)
JE (SP)+,G00 [FALSE] L0004
PRINT_RET "The troll refuses to let you cross."
L0004: INSERT_OBJ "burly troll",G00
PRINT_RET "The troll steps out from beneath the bridge and blocks
your way."
Routine R0266, 0 locals
PRINT "A rickety wooden bridge extends across the chasm,
vanishing into the mist.
A sign posted on the bridge reads, "Stop! Pay troll!"
"
GET_PARENT "burly troll" -> -(SP)
JE (SP)+,G00 [TRUE] L0001
PRINT_RET "The troll is nowhere to be seen."
L0001: RTRUE
Routine R0267, 0 locals
JE G00,#cc [FALSE] L0001
RET #0a
L0001: RET #0d
Routine R0268, 0 locals
JE G00,#cc [FALSE] L0001
RET #00d0
L0001: RET #cc
Routine R0269, 0 locals
PRINT_RET "The wreckage is too far below."
Routine R0270, 0 locals
JE G2b,#40 [FALSE] L0001
PRINT_RET "The troll laughs aloud at your pitiful attempt to
injure him."
L0001: JE G2b,#1e,#20 [FALSE] L0004
TEST_ATTR G1f,#00 [FALSE] L0002
REMOVE_OBJ G1f
INSERT_OBJ "burly troll","rickety bridge"
SET_ATTR "burly troll",#0c
SUB G06,#05 -> G06
PRINT_RET "The troll catches your treasure and scurries away out
of sight."
L0002: JE G1f,#1c [FALSE] L0003
PRINT_RET "Gluttony is not one of the troll's vices. Avarice,
however, is."
L0003: PRINT "The troll deftly catches "
CALL_2N R0063 (G1f)
PRINT_RET ", examines it carefully, and tosses it back, declaring,
"Good workmanship, but it's not valuable enough.""
L0004: JE G2b,#fd [FALSE] L0005
PRINT_RET "You'll be lucky."
L0005: JE G2b,#42,#43 [FALSE] L0006
PRINT_RET "Trolls make poor conversation."
L0006: RFALSE
Routine R0271, 0 locals
JE G2b,#5d [FALSE] L0002
GET_PARENT "rickety bridge" -> -(SP)
JE (SP)+,G1e [FALSE] L0001
PRINT_RET "I respectfully suggest you go across the bridge instead
of jumping."
L0001: STORE G0c,#01
PRINT_RET "You didn't make it."
L0002: RFALSE
Routine R0272, 0 locals
JE G2b,#5d [FALSE] L0001
CALL_VN R0040 (#24,#0b)
RTRUE
L0001: RFALSE
Routine R0273, 0 locals
JE G2b,#52,#28 [FALSE] L0001
PRINT_RET "They smell wonderfully exotic!"
L0001: RFALSE
Routine R0274, 0 locals
TEST_ATTR "large cave bear",#0c [FALSE] L0001
PRINT_RET "You are being followed by a very large, tame bear."
L0001: TEST_ATTR "large cave bear",#16 [TRUE] L0002
PRINT_RET "There is a ferocious cave bear eyeing you from the far
end of the room!"
L0002: JE G00,#e2 [FALSE] L0003
PRINT_RET "There is a gentle cave bear sitting placidly in one
corner."
L0003: PRINT_RET "There is a contented-looking bear wandering about
nearby."
Routine R0275, 0 locals
JE G2b,#40 [FALSE] L0002
GET_PARENT "dwarvish axe" -> -(SP)
JE (SP)+,G08 [FALSE] L0001
CALL_VN R0040 (#1e,#00f7,#e4)
RTRUE
L0001: PRINT_RET "With what? Your bare hands? Against *his* bear
hands??"
L0002: JE G2b,#1e [FALSE] L0005
JE G1f,#00f7 [TRUE] L0003
CALL_VN R0040 (#20,G1f,#e4)
RTRUE
L0003: TEST_ATTR "large cave bear",#16 [FALSE] L0004
PRINT_RET "The bear is confused; he only wants to be your friend."
L0004: INSERT_OBJ "dwarvish axe",G00
SET_ATTR "dwarvish axe",#0c
PRINT_RET "The axe misses and lands near the bear where you can't
get at it."
L0005: JE G2b,#20 [FALSE] L0008
JE G1f,#1c [FALSE] L0006
CLEAR_ATTR "dwarvish axe",#0c
REMOVE_OBJ "tasty food"
SET_ATTR "large cave bear",#16
PRINT_RET "The bear eagerly wolfs down your food, after which he
seems to calm down considerably and even becomes rather friendly."
L0006: TEST_ATTR "large cave bear",#16 [FALSE] L0007
PRINT_RET "The bear doesn't seem very interested in your offer."
L0007: PRINT_RET "Uh-oh -- your offer only makes the bear angrier!"
L0008: JE G2b,#fd,#43,#42 [FALSE] L0009
PRINT_RET "This is a Bear of very little brain."
L0009: RFALSE
Routine R0276, 0 locals
JE G2b,#28 [FALSE] L0002
PRINT "The bear is extremely large, "
TEST_ATTR "large cave bear",#16 [FALSE] L0001
PRINT_RET "but appears to be friendly."
L0001: PRINT_RET "and seems quite ferocious!"
L0002: JE G2b,#11,#61 [FALSE] L0005
TEST_ATTR "large cave bear",#16 [TRUE] L0003
PRINT_RET "Surely you're joking!"
L0003: TEST_ATTR "golden chain",#0f [FALSE] L0004
PRINT_RET "The bear is still chained to the wall."
L0004: SET_ATTR "large cave bear",#0c
CALL_2N R0053 (#e4)
PRINT_RET "Ok, the bear's now following you around."
L0005: JE G2b,#1a,#62 [FALSE] L0008
TEST_ATTR "large cave bear",#0c [TRUE] L0006
PRINT_RET "What?"
L0006: CLEAR_ATTR "large cave bear",#0c
CALL_2N R0054 (#e4)
GET_PARENT "burly troll" -> -(SP)
JE (SP)+,G00 [FALSE] L0007
REMOVE_OBJ "burly troll"
PRINT_RET "The bear lumbers toward the troll, who lets out a
startled shriek and scurries away. The bear soon gives up the pursuit and
wanders back."
L0007: PRINT_RET "The bear wanders away from you."
L0008: RFALSE
Routine R0277, 0 locals
JE G00,#0e [FALSE] L0001
RFALSE
L0001: GET_PARENT "large cave bear" -> -(SP)
JE G00,(SP)+ [FALSE] L0003
JE G00,#d4 [FALSE] L0002
PRINT_RET "
The bear roars with delight."
L0002: RFALSE
L0003: INSERT_OBJ "large cave bear",G00
PRINT_RET "
The bear lumbers along behind you."
Routine R0278, 0 locals
TEST_ATTR G1e,#0f [FALSE] L0001
PRINT_RET "The bear is held back by a solid gold chain."
L0001: PRINT_RET "A solid golden chain lies in coils on the ground!"
Routine R0279, 0 locals
JE G2b,#11 [FALSE] L0002
TEST_ATTR G1e,#0f [FALSE] L0002
TEST_ATTR "large cave bear",#16 [FALSE] L0001
PRINT_RET "It's locked to the friendly bear."
L0001: PRINT_RET "It's locked to the ferocious bear!"
L0002: JE G2b,#2d [FALSE] L0003
TEST_ATTR "large cave bear",#16 [TRUE] L0003
PRINT_RET "There is no way to get past the bear to unlock the
chain, which is probably just as well."
L0003: JE G2b,#3f [FALSE] L0004
PRINT_RET "The mechanism won't lock again."
L0004: RFALSE
Routine R0280, 0 locals
JE G2b,#2d [FALSE] L0001
PRINT_RET "You unlock the chain, and set the tame bear free."
L0001: RFALSE
Routine R0281, 0 locals
JE G2b,#fe [FALSE] L0002
JE G1f,#52 [FALSE] L0001
INSERT_OBJ "fresh batteries",G00
REMOVE_OBJ "rare coins"
PRINT_RET "Soon after you insert the coins in the coin slot, the
vending machines makes a grinding sound, and a set of fresh batteries falls at
your feet."
L0001: PRINT_RET "The machine seems to be designed to take coins."
L0002: JE G2b,#40 [FALSE] L0003
PRINT_RET "The machine is quite sturdy and survives your attack
without getting so much as a scratch."
L0003: JE G2b,#2a [FALSE] L0004
PRINT_RET "You don't find anything under the machine."
L0004: JE G2b,#29 [FALSE] L0005
PRINT_RET "You can't get inside the machine."
L0005: JE G2b,#11 [FALSE] L0006
PRINT_RET "The vending machine is far too heavy to move."
L0006: RFALSE
Routine R0282, 0 locals
JE G00,#0e [FALSE] L0001
RTRUE
L0001: GET_PROP G1e,#19 -> -(SP)
JE (SP)+,#00 [FALSE] L0002
CALL_2N R0054 (G1e)
RTRUE
L0002: GET_PARENT "threatening little dwarf" -> -(SP)
JE (SP)+,#00 [FALSE] L0009
TEST_ATTR G00,#01 [TRUE] L0003
TEST_ATTR G00,#0d [FALSE] L0004
L0003: RTRUE
L0004: GET_PROP G1e,#19 -> -(SP)
RANDOM #64 -> -(SP)
JG (SP)+,(SP)+ [TRUE] L0008
GET_PARENT "large cave bear" -> -(SP)
JE (SP)+,G00 [TRUE] L0005
GET_PARENT "burly troll" -> -(SP)
JE (SP)+,G00 [FALSE] L0006
L0005: RTRUE
L0006: NEW_LINE
GET_PARENT "dragon" -> -(SP)
JE (SP)+,G00 [FALSE] L0007
GET_PROP G1e,#19 -> -(SP)
SUB (SP)+,#01 -> -(SP)
PUT_PROP G1e,#19,(SP)+
PRINT_RET "A dwarf appears, but with one casual blast the dragon
vapourises him!"
L0007: INSERT_OBJ "threatening little dwarf",G00
PRINT_RET "A threatening little dwarf comes out of the shadows!"
L0008: RTRUE
L0009: GET_PARENT "threatening little dwarf" -> -(SP)
JE (SP)+,G00 [TRUE] L0014
JE G00,#0e [FALSE] L0010
RTRUE
L0010: TEST_ATTR G00,#01 [TRUE] L0011
TEST_ATTR G00,#0d [FALSE] L0012
L0011: RTRUE
L0012: RANDOM #64 -> -(SP)
JG (SP)+,#60 [TRUE] L0013
GET_PARENT "threatening little dwarf" -> -(SP)
JE (SP)+,#c7 [TRUE] L0013
INSERT_OBJ "threatening little dwarf",G00
PRINT "
The dwarf stalks after you...
"
JUMP L0014
L0013: REMOVE_OBJ "threatening little dwarf"
RTRUE
L0014: RANDOM #64 -> -(SP)
JG (SP)+,#4b [TRUE] L0018
NEW_LINE
TEST_ATTR G1e,#0c [TRUE] L0015
INSERT_OBJ "dwarvish axe",G00
SET_ATTR G1e,#0c
REMOVE_OBJ G1e
PRINT_RET "The dwarf throws a nasty little axe at you, misses,
curses, and runs away."
L0015: JE G00,#c7 [FALSE] L0016
PRINT_RET "The dwarf admires himself in the mirror."
L0016: PRINT "The dwarf throws a nasty little knife at you, "
RANDOM #03e8 -> -(SP)
JG (SP)+,#5f [TRUE] L0017
STORE G0c,#01
PRINT_RET "and hits!"
L0017: PRINT_RET "but misses!"
L0018: RANDOM #03 -> -(SP)
JE (SP)+,#01 [FALSE] L0019
REMOVE_OBJ "threatening little dwarf"
PRINT_RET "
Tiring of this, the dwarf slips away."
L0019: RFALSE
Routine R0283, 0 locals
JE G2b,#6e [FALSE] L0001
PRINT_RET "You boot the dwarf across the room. He curses, then
gets up and brushes himself off. Now he's madder than ever!"
L0001: RFALSE
Routine R0284, 0 locals
JE G2b,#1e [FALSE] L0003
JE G1f,#00f7 [FALSE] L0002
RANDOM #03 -> -(SP)
JE (SP)+,#01 [TRUE] L0001
REMOVE_OBJ G1e
INSERT_OBJ "dwarvish axe",G00
GET_PROP G1e,#19 -> -(SP)
SUB (SP)+,#01 -> -(SP)
PUT_PROP G1e,#19,(SP)+
PRINT_RET "You killed a little dwarf! The body vanishes in a
cloud of greasy black smoke."
L0001: INSERT_OBJ "dwarvish axe",G00
PRINT_RET "Missed! The little dwarf dodges out of the way of the
axe."
L0002: CALL_VN R0040 (#20,G1f,G20)
RTRUE
L0003: JE G2b,#20 [FALSE] L0005
JE G1f,#1c [FALSE] L0004
PRINT_RET "You fool, dwarves eat only coal! Now you've made him
*really* mad!"
L0004: PRINT_RET "The dwarf is not at all interested in your offer. (The
reason being, perhaps, that if he kills you he gets everything you have
anyway.)"
L0005: JE G2b,#40 [FALSE] L0006
PRINT_RET "Not with your bare hands. No way."
L0006: RFALSE
Routine R0285, 0 locals
TEST_ATTR "dwarvish axe",#0c [TRUE] L0001
RFALSE
L0001: JE G2b,#28 [FALSE] L0002
PRINT_RET "It's lying beside the bear."
L0002: JE G2b,#11 [FALSE] L0003
PRINT_RET "No chance. It's lying beside the ferocious bear, quite
within harm's way."
L0003: RFALSE
Routine R0286, 3 locals
TEST_ATTR "pirate",#0c [FALSE] L0001
TEST_ATTR "pirate",#16 [FALSE] L0001
CALL_2N R0054 (#f8)
RTRUE
L0001: JE G00,#0e [TRUE] L0002
TEST_ATTR G00,#0d [TRUE] L0002
TEST_ATTR G00,#01 [TRUE] L0002
RANDOM #64 -> -(SP)
JG (SP)+,#02 [TRUE] L0002
JE G00,#91 [FALSE] L0003
L0002: RTRUE
L0003: GET_PARENT "threatening little dwarf" -> -(SP)
JE (SP)+,G00 [FALSE] L0004
PRINT_RET "
A bearded pirate appears, catches sight of the dwarf and runs away."
L0004: GET_CHILD G08 -> L01 [TRUE] L0005
L0005: JE L01,#00 [TRUE] L0008
TEST_ATTR L01,#00 [FALSE] L0006
INC L00
L0006: GET_SIBLING L01 -> L01 [TRUE] L0007
L0007: JUMP L0005
L0008: GET_CHILD G00 -> L01 [TRUE] L0009
L0009: JE L01,#00 [TRUE] L0012
TEST_ATTR L01,#00 [FALSE] L0010
INC L00
L0010: GET_SIBLING L01 -> L01 [TRUE] L0011
L0011: JUMP L0009
L0012: JE L00,#00 [FALSE] L0014
TEST_ATTR "pirate",#0c [FALSE] L0013
RFALSE
L0013: SET_ATTR "pirate",#0c
PRINT_RET "
There are faint rustling noises from the darkness behind you. As you turn
toward them, you spot a bearded pirate. He is carrying a large chest.
"Shiver me timbers!" he cries, "I've been spotted! I'd best hie meself off to
the maze to hide me chest!"
With that, he vanishes into the gloom."
L0014: TEST_ATTR "pirate",#16 [FALSE] L0015
RFALSE
L0015: SET_ATTR "pirate",#16
L0016: JG L00,#00 [FALSE] L0025
GET_CHILD G08 -> L01 [TRUE] L0017
L0017: JE L01,#00 [TRUE] L0020
TEST_ATTR L01,#00 [FALSE] L0018
STORE L02,L01
SUB G06,#05 -> G06
L0018: GET_SIBLING L01 -> L01 [TRUE] L0019
L0019: JUMP L0017
L0020: GET_CHILD G00 -> L01 [TRUE] L0021
L0021: JE L01,#00 [TRUE] L0024
TEST_ATTR L01,#00 [FALSE] L0022
STORE L02,L01
L0022: GET_SIBLING L01 -> L01 [TRUE] L0023
L0023: JUMP L0021
L0024: INSERT_OBJ L02,"Dead End"
DEC L00
JUMP L0016
L0025: PRINT_RET "
Out from the shadows behind you pounces a bearded pirate! "Har, har," he
chortles. "I'll just take all this booty and hide it away with me chest deep in
the maze!" He snatches your treasure and vanishes into the gloom."
Routine R0287, 0 locals
JL G7d,#0f [FALSE] L0001
RTRUE
L0001: CALL_2N R0054 (G1e)
STORE G7b,#01
ADD G06,#19 -> G06
REMOVE_OBJ "crystal bridge"
SET_ATTR "steel grate",#0f
CLEAR_ATTR "steel grate",#12
REMOVE_OBJ "set of keys"
CALL_2N R0054 (#f6)
CALL_2N R0054 (#f8)
REMOVE_OBJ "burly troll"
REMOVE_OBJ "large cave bear"
REMOVE_OBJ "dragon"
CALL_VN R0051 (#00fa,#19)
PRINT_RET "
A sepulchral voice reverberating through the cave says, "Cave closing soon. All
adventurers exit immediately through main office.""
Routine R0288, 0 locals
ADD G06,#0a -> G06
L0001: GET_CHILD G08 -> -(SP) [TRUE] L0002
L0002: JE (SP)+,#00 [TRUE] L0004
GET_CHILD G08 -> -(SP) [TRUE] L0003
L0003: REMOVE_OBJ (SP)+
JUMP L0001
L0004: INSERT_OBJ "small bottle","NE End of Repository"
GET_CHILD "small bottle" -> -(SP) [TRUE] L0005
L0005: JE (SP)+,#00 [TRUE] L0007
GET_CHILD "small bottle" -> -(SP) [TRUE] L0006
L0006: REMOVE_OBJ (SP)+
L0007: INSERT_OBJ "giant clam","NE End of Repository"
INSERT_OBJ "brass lantern","NE End of Repository"
INSERT_OBJ "black rod with a rusty star on the end","NE End of
Repository"
INSERT_OBJ "little bird","SW End of Repository"
INSERT_OBJ "velvet pillow","SW End of Repository"
PRINT "
The sepulchral voice intones, "The cave is now closed." As the echoes fade,
there is a blinding flash of light (and a small puff of orange smoke). . .
As your eyes refocus, you look around...
"
CALL_2N R0076 (#00fb)
RFALSE
Routine R0289, 0 locals
JE G2b,#40 [FALSE] L0001
PRINT "You strike the mirror a resounding blow, whereupon it
shatters into a myriad tiny fragments.
"
CALL_1N R0295
RTRUE
L0001: RFALSE
Routine R0290, 0 locals
JE G2b,#11 [FALSE] L0001
PRINT_RET "Realizing that by removing the loot here you'd be
ruining the game for future players, you leave the "Adventure" materials where
they are."
L0001: RFALSE
Routine R0291, 0 locals
JE G2b,#11 [FALSE] L0001
PRINT_RET "What, all of them?"
L0001: RFALSE
Routine R0292, 0 locals
JE G2b,#4f [FALSE] L0001
PRINT "You prod the nearest dwarf, who wakes up grumpily,
takes one look at you, curses, and grabs for his axe.
"
CALL_1N R0295
RTRUE
L0001: JE G2b,#40 [FALSE] L0002
CALL_1N R0295
RTRUE
L0002: RFALSE
Routine R0293, 0 locals
JE G2b,#11 [FALSE] L0001
PRINT_RET "Realizing that by removing the loot here you'd be
ruining the game for future players, you leave the "Adventure" materials where
they are."
L0001: RFALSE
Routine R0294, 0 locals
JE G2b,#36 [FALSE] L0001
PRINT_RET "Nothing happens."
L0001: RFALSE
Routine R0295, 0 locals
STORE G0c,#01
PRINT_RET "The resulting ruckus has awakened the dwarves. There
are now dozens of threatening little dwarves in the room with you! Most of
them throw knives at you! All of them get you!"
Routine R0296, 0 locals
STORE G00,#10
STORE G06,#24
CALL_2N R0053 (#f6)
CALL_2N R0053 (#f8)
CALL_2N R0053 (#f9)
PRINT "
Welcome to Adventure!
"
RTRUE
Routine R0297, 0 locals
PRINT ", earning you the rank of "
JL G06,#015c [TRUE] L0001
PRINT_RET "Grandmaster Adventurer!"
L0001: JL G06,#014a [TRUE] L0002
PRINT_RET "Master, first class."
L0002: JL G06,#012c [TRUE] L0003
PRINT_RET "Master, second class."
L0003: JL G06,#c8 [TRUE] L0004
PRINT_RET "Junior Master."
L0004: JL G06,#82 [TRUE] L0005
PRINT_RET "Seasoned Adventurer."
L0005: JL G06,#64 [TRUE] L0006
PRINT_RET "Experienced Adventurer."
L0006: JL G06,#23 [TRUE] L0007
PRINT_RET "Adventurer."
L0007: JL G06,#0a [TRUE] L0008
PRINT_RET "Novice."
L0008: PRINT_RET "Amateur."
Routine R0298, 0 locals
JE G7f,#00 [FALSE] L0001
STORE G7f,#01
PRINT_RET "It is now pitch dark. If you proceed you will likely
fall into a pit."
L0001: RANDOM #04 -> -(SP)
JE (SP)+,#01 [FALSE] L0002
STORE G0c,#01
PRINT_RET "You fell into a pit and broke every bone in your body!"
L0002: RFALSE
Routine R0299, 0 locals
JE G71,#00 [FALSE] L0002
STORE G6f,#08
STORE G70,S284 OR "threateni"
JE G0c,#02 [FALSE] L0001
RET #04
JUMP L0002
L0001: RET #03
L0002: JE G71,#01 [FALSE] L0003
STORE G6f,#06
STORE G70,S285
L0003: JE G71,#02 [FALSE] L0004
STORE G6f,#04
STORE G70,S286
L0004: JE G71,#03 [FALSE] L0005
STORE G6f,#06
STORE G70,S287
L0005: JE G71,#04 [FALSE] L0006
STORE G6f,#07
STORE G70,S288
L0006: RTRUE
Routine R0300, 0 locals
JE G71,#01 [FALSE] L0001
PRINT "I know of places, actions, and things. You can guide me
using commands that are complete sentences. To move, try commands like "enter,"
"east," "west," "north," "south," "up," "down," "enter building," "climb pole,"
etc.
"
PRINT "I know about a few special objects, like a black rod
hidden in the cave. These objects can be manipulated using some of the action
words that I know. Usually you will need to give a verb followed by an object
(along with descriptive adjectives when desired), but sometimes I can infer the
object from the verb alone. Some objects also imply verbs; in particular,
"inventory" implies "take inventory", which causes me to give you a list of
what you're carrying. The objects have side effects; for instance, the rod
scares the bird.
"
PRINT "Many commands have abbreviations. For example, you can
type "i" in place of "inventory," "x object" instead of "examine object," etc.
"
PRINT "Usually people having trouble moving just need to try a
few more words. Usually people trying unsuccessfully to manipulate an object
are attempting something beyond their (or my!) capabilities and should try a
completely different tack.
"
PRINT "Note that cave passages turn a lot, and that leaving a
room to the north does not guarantee entering the next from the south.
"
PRINT "If you want to end your adventure early, type "quit".
To suspend your adventure such that you can continue later, type "save," and to
resume a saved game, type "restore." To see how well you're doing, type
"score". To get full credit for a treasure, you must have left it safely in the
building, though you get partial credit just for locating it. You lose points
for getting killed, or for quitting, though the former costs you more. There
are also points based on how much (if any) of the cave you've managed to
explore; in particular, there is a large bonus just for getting in (to
distinguish the beginners from the rest of the pack), and there are other ways
to determine whether you've been through some of the more harrowing sections.
"
PRINT "If you think you've found all the treasures, just keep
exploring for a while. If nothing interesting happens, you haven't found them
all yet. If something interesting *does* happen, it means you're getting a
bonus and have an opportunity to garner many more points in the master's
section.
"
PRINT_RET "Good luck!"
L0001: JE G71,#02 [FALSE] L0002
PRINT "This was the first adventure game ever written, based
on a FORTRAN simulation of the Mammoth and Flint Ridge cave system by Willie
Crowther. Crowther was one of its explorers: some of the game's locations are
real, Bedquilt for instance. (And "Y2" is a reference to the cave-map notation
for "alternative entrance to caves".)
"
PRINT "Adventure (sometimes called "Colossal Cave", another
real place) was an extension largely by Don Woods, a colleague of Crowther's at
a Massachusetts computing firm. Inspired by (a variant of) the role-playing
game "Dungeons and Dragons", they added puzzles and magic to the caves.
"
PRINT "The game was spread from machine to machine, and (among
others) DECUS, the Digital user group, issued tapes of it. Ever since, the game
has been modified, ported, improved, extended and generally corrupted. The
original is hard to find. Most of the extras tacked on are clearly inferior,
and lose the spirit of the (certainly imperfect, but atmospheric and
well-designed) original.
"
PRINT "This is a copy at third hand. It is a slight
simplification of David M. Baggett's excellent 1993 version for Adventions,
written in TADS: which in turn derived from Donald Ekman's PC port of the
original FORTRAN source code.
"
PRINT_RET "And, even by modern standards, it is still a good
game!"
L0002: JE G71,#03 [FALSE] L0003
PRINT "This port is fairly close to the original. The puzzles,
items and places of the 1977 version are exactly those here.
"
PRINT "I have added a few helpful messages, such as "This is a
dead end.", here and there: and restored some "initial position" messages from
objects, such as the (rather lame)
There is tasty food here.
from source files which are certainly early but of doubtful provenance. They
seem to sit well with the rest of the text.
"
PRINT "The scoring system is the original, except that you no
longer lose 4 points for quitting (since you don't get the score if you quit an
Inform game, this makes no difference) and, controversially, I award 5 points
for currently carrying a treasure, as some early 1980s ports did. The rank
names are tidied up a little. The only significant rule change is that one
cannot use magic words until their destinations have been visited.
"
PRINT "The dwarves are simpler in their movements, but on the
other hand I have added a very few messages to make them interact better with
the rest of the game. The probabilities are as in the original game.
"
PRINT "In the original one could type the name of a room to
visit it: for the sake of keeping the code small, I have omitted this feature,
but with some regrets.
"
PRINT "The text itself is almost everywhere preserved intact,
but I've corrected some spelling and grammatical mistakes (and altered a couple
of utterly misleading and gnomic remarks). The instructions have been slightly
altered (for obvious reasons) but are basically as written.
"
PRINT_RET "A good source for details is David Baggett's source
code, which is circulated on the Internet."
L0003: PRINT "Did you know that...
"
PRINT "The five dwarves have a 96% chance of following you,
except into light, down pits or when admiring themselves: and the nasty little
knives are 9.5% accurate.
"
PRINT "Dragons burn up dwarves (perhaps because dwarves eat
only coal).
"
PRINT "The bear (who likes the volcano) is too heavy for the
bridge... and you can go back to the scene after being resurrected.
"
PRINT "You can slip past the snake into the secret E/W canyon,
35% of the time at any rate. And walking about in the dark is not all that
gruesome: it carries only a 25% risk of falling down a pit.
"
PRINT "The vase does not like being immersed.
"
PRINT "Shadowy figures can wave to each other.
"
PRINT "Watering the hinges of the door rusts them up again.
"
PRINT "When the cave closes, the grate is locked and the keys
are thrown away, creatures run off and the crystal bridge vanishes...
"
PRINT "...and a completely useless hint is written on the
giant oyster's shell in the end game.
"
PRINT_RET "The last lousy point can be won by... but no. That
would be telling."
Routine R0301, 0 locals
Action routine for:
"help"
JE G0c,#02 [TRUE] L0001
CALL_VN R0048 (S289,#3a95,#3aa9)
JUMP L0002
L0001: CALL_VN R0048 (S290,#3a95,#3aa9)
L0002: RTRUE
Routine R0302, 0 locals
CALL_1N R0301
RTRUE
Routine R0303, 0 locals
Action routine for:
"capture CREATURE"
"capture CREATURE with HELD"
PRINT "You can't catch "
CALL_2N R0063 (G1f)
PRINT_RET "."
Routine R0304, 0 locals
Action routine for:
"free CREATURE"
PRINT "You can't release "
CALL_2N R0063 (G1f)
PRINT_RET "."
Routine R0305, 0 locals
Action routine for:
"water NOUN"
GET_PARENT "small bottle" -> -(SP)
JE (SP)+,G08 [FALSE] L0001
CALL_VN R0040 (#1b,#1e)
RTRUE
L0001: PRINT_RET "Water? What water?"
Routine R0306, 0 locals
Action routine for:
"grease NOUN"
GET_PARENT "small bottle" -> -(SP)
JE (SP)+,G08 [FALSE] L0001
CALL_VN R0040 (#1b,#1e)
RTRUE
L0001: PRINT_RET "Oil? What oil?"
Routine R0307, 0 locals
Action routine for:
"on"
GET_PARENT "brass lantern" -> -(SP)
JE (SP)+,G08 [TRUE] L0001
PRINT_RET "You have no lamp."
L0001: CALL_VN R0040 (#3d,#1d)
RTRUE
Routine R0308, 0 locals
Action routine for:
"off"
GET_PARENT "brass lantern" -> -(SP)
JE (SP)+,G08 [TRUE] L0001
PRINT_RET "You have no lamp."
L0001: CALL_VN R0040 (#3e,#1d)
RTRUE
Routine R0309, 0 locals
Action routine for:
"xyzzy"
PRINT_RET "Nothing happens."
Routine R0310, 0 locals
Action routine for:
"plugh"
PRINT_RET "Nothing happens."
Routine R0311, 0 locals
Action routine for:
"plover"
PRINT_RET "Nothing happens."
Routine R0312, 0 locals
Action routine for:
"fee"
CALL_2N R0316 (#00)
RTRUE
Routine R0313, 0 locals
Action routine for:
"fie"
CALL_2N R0316 (#01)
RTRUE
Routine R0314, 0 locals
Action routine for:
"foe"
CALL_2N R0316 (#02)
RTRUE
Routine R0315, 0 locals
Action routine for:
"foo"
CALL_2N R0316 (#03)
RTRUE
Routine R0316, 1 local
JE G80,L00 [TRUE] L0001
STORE G80,#00
PRINT_RET "Get it right, dummy!"
L0001: INC G80
JE G80,#04 [FALSE] L0009
STORE G80,#00
GET_PARENT "nest of golden eggs" -> -(SP)
JE (SP)+,#a3 [FALSE] L0002
PRINT_RET "Nothing happens."
L0002: GET_PARENT "nest of golden eggs" -> -(SP)
JE (SP)+,G08 [TRUE] L0003
GET_PARENT "nest of golden eggs" -> -(SP)
JE (SP)+,G00 [FALSE] L0004
L0003: PRINT "The nest of golden eggs has vanished!
"
JUMP L0005
L0004: PRINT "Done!"
L0005: GET_PARENT "nest of golden eggs" -> -(SP)
JE (SP)+,G08 [FALSE] L0006
SUB G06,#05 -> G06
L0006: GET_PARENT "nest of golden eggs" -> -(SP)
JE (SP)+,#18 [FALSE] L0007
GET_PROP "nest of golden eggs",#02 -> -(SP)
SUB G06,(SP)+ -> G06
L0007: INSERT_OBJ "nest of golden eggs","Giant Room"
JE G00,#a3 [FALSE] L0008
PRINT_RET "
A large nest full of golden eggs suddenly appears out of nowhere!"
L0008: JUMP L0010
L0009: PRINT_RET "Ok."
L0010: RTRUE
Routine R0317, 0 locals
Action routine for:
"count"
PRINT "I see one (1) "
PRINT_OBJ G1f
PRINT "."
NEW_LINE
RTRUE
Routine R0318, 0 locals
Action routine for:
"use"
PRINT_RET "You'll have to be a bit more explicit than that."
Routine R0319, 0 locals
Action routine for:
"blast NOUN with HELD"
JE G20,#0102 [TRUE] L0001
PRINT_RET "Blasting requires dynamite."
L0001: PRINT_RET "Been eating those funny brownies again?"
Routine R0320, 0 locals
Action routine for:
"abracadab"
PRINT_RET "Good try, but that is an old worn-out magic word."
Routine R0321, 0 locals
Action routine for:
"kick NOUN"
CALL_VN R0040 (#40,G1f)
RTRUE
Routine R0322, 0 locals
Action routine for:
"blast"
JE G00,#ff,#fb [TRUE] L0001
PRINT_RET "Frustrating, isn't it?"
L0001: JE G00,#ff [FALSE] L0002
GET_PARENT "black rod with a rusty mark on the end" -> -(SP)
JE (SP)+,#fb [FALSE] L0002
ADD G06,#23 -> G06
STORE G0c,#02
PRINT_RET "There is a loud explosion, and a twenty-foot hole
appears in the far wall, burying the dwarves in the rubble. You march through
the hole and find yourself in the main office, where a cheering band of
friendly elves carry the conquering adventurer off into the sunset."
L0002: JE G00,#fb [FALSE] L0003
GET_PARENT "black rod with a rusty mark on the end" -> -(SP)
JE (SP)+,#ff [FALSE] L0003
ADD G06,#14 -> G06
STORE G0c,#01
PRINT_RET "There is a loud explosion, and a twenty-foot hold
appears in the far wall, burying the snakes in the rubble. A river of molten
lava pours in through the hole, destroying everything in its path, including
you!"
L0003: STORE G0c,#01
PRINT_RET "There is a loud explosion, and you are suddenly
splashed across the walls of the room."
Routine R0323, 1 local
JE G0c,#03 [FALSE] L0001
STORE G0c,#01
RFALSE
L0001: PRINT "
"
JE G7b,#01 [FALSE] L0002
PRINT_RET "It looks as though you're dead. Well, seeing as how
it's so close to closing time anyway, I think we'll just call it a day."
L0002: JE G7e,#00 [FALSE] L0003
PRINT "Oh dear, you seem to have gotten yourself killed. I
might be able to help you out, but I've never really done this before. Do you
want me to try to reincarnate you?
"
L0003: JE G7e,#01 [FALSE] L0004
PRINT "You clumsy oaf, you've done it again! I don't know how
long I can keep this up. Do you want me to try reincarnating you again?
"
L0004: JE G7e,#02 [FALSE] L0005
PRINT "Now you've really done it! I'm out of orange smoke!
You don't expect me to do a decent reincarnation without any orange smoke, do
you?
"
L0005: PRINT "> "
CALL_1S R0078 -> -(SP)
JE (SP)+,#00 [FALSE] L0008
JE G7e,#00 [FALSE] L0006
PRINT_RET "Very well."
L0006: JE G7e,#01 [FALSE] L0007
PRINT_RET "Probably a wise choice."
L0007: PRINT_RET "I thought not!"
L0008: JE G7e,#00 [FALSE] L0009
PRINT "All right. But don't blame me if something goes
wr......
--- POOF!! ---
You are engulfed in a cloud of orange smoke. Coughing and gasping, you emerge
from the smoke and find that you're....
"
L0009: JE G7e,#01 [FALSE] L0010
PRINT "Okay, now where did I put my orange smoke?.... >POOF!<
Everything disappears in a dense cloud of orange smoke.
"
L0010: JE G7e,#02 [FALSE] L0011
PRINT_RET "Okay, if you're so smart, do it yourself! I'm
leaving!"
L0011: INC G7e
SUB G06,#0a -> G06
JE G00,#0e [TRUE] L0017
L0012: GET_CHILD G08 -> -(SP) [TRUE] L0013
L0013: JE (SP)+,#00 [TRUE] L0016
GET_CHILD G08 -> L00 [TRUE] L0014
L0014: INSERT_OBJ L00,G00
TEST_ATTR L00,#00 [FALSE] L0015
SUB G06,#05 -> G06
L0015: JUMP L0012
L0016: JUMP L0020
L0017: GET_CHILD G08 -> -(SP) [TRUE] L0018
L0018: JE (SP)+,#00 [TRUE] L0020
GET_CHILD G08 -> -(SP) [TRUE] L0019
L0019: INSERT_OBJ (SP)+,G0a
JUMP L0017
L0020: INSERT_OBJ "brass lantern","At End Of Road"
CLEAR_ATTR "brass lantern",#11
CLEAR_ATTR "brass lantern",#0d
REMOVE_OBJ "threatening little dwarf"
STORE G0c,#00
CALL_2N R0076 (#18)
RTRUE
Routine R0324, 0 locals
RFALSE
Routine R0325, 0 locals
RFALSE
Routine R0326, 0 locals
RFALSE
Routine R0327, 0 locals
RFALSE
Routine R0328, 0 locals
RFALSE
Routine R0329, 0 locals
RFALSE
Routine R0330, 1 local
STORE L00,#00
RFALSE
Routine R0331, 1 local
STORE L00,#00
RFALSE
Routine R0332, 1 local
STORE L00,#00
RFALSE
Routine R0333, 1 local
STORE L00,#00
RFALSE
Routine R0334, 1 local
STORE L00,#00
RFALSE
Routine R0335, 2 locals
STORE L00,#00
STORE L01,#00
RFALSE
[End of code]
[Start of text]
S001: "ADVENTURE"
S002: "
The Interactive Original
By Willie Crowther and Don Woods (1977)
David M. Baggett's 1993 reconstruction, ported by Graham Nelson
"
S003: "941007"
S004: "5/5"
S005: "a"
S006: "You can't go that way."
S007: "the"
S008: "the"
S009: "the"
S010: "the"
S011: "the"
S012: "the"
S013: "the"
S014: "the"
S015: "the"
S016: "the"
S017: "the"
S018: "the"
S019: "It is pitch dark, and you can't see a thing."
S020: "As good-looking as ever."
S021: "You are standing at the end of a road before a small brick building.
Around you is a forest. A small stream flows out of the building and down a
gully."
S022: "It's a small brick building. It seems to be a well house."
S023: "The road is dirt, not yellow brick."
S024: "The trees of the forest are large hardwood oak and maple, with an
occasional grove of pine or spruce. There is quite a bit of undergrowth,
largely birch and ash saplings plus nondescript bushes of various sorts. This
time of year visibility is quite restricted by all the leaves, but travel is
quite easy if you detour around the spruce and berry bushes."
S025: "You have walked up a hill, still in the forest. The road slopes back
down the other side of the hill. There is a building in the distance."
S026: "It's just a typical hill."
S027: "the"
S028: "Why not explore it yourself?"
S029: "You are inside a building, a well house for a large spring."
S030: "The stream flows out through a pair of 1 foot diameter sewer pipes. The
only exit is to the west."
S031: "The pipes are too small."
S032: "The stream flows out through a pair of 1 foot diameter sewer pipes."
S033: "Too small. The only exit is to the west."
S034: "It's just a normal-looking set of keys."
S035: "There are some keys on the ground here."
S036: "Sure looks yummy!"
S037: "some"
S038: "There is tasty food here."
S039: "There is a shiny brass lamp nearby."
S040: "Your lamp is here, gleaming brightly."
S041: "There is an empty bottle here."
S042: "some"
S043: "It looks like ordinary water to me."
S044: "some"
S045: "It looks like ordinary oil to me."
S046: "You are in open forest, with a deep valley to one side."
S047: "You are in open forest near both a valley and a road."
S048: "You are in a valley in the forest beside a stream tumbling along a rocky
bed."
S049: "At your feet all the water of the stream splashes into a 2-inch slit in
the rock. Downstream the streambed is bare rock."
S050: "It's just a 2-inch slit in the rock, through which the stream is
flowing."
S051: "You are in a 20-foot depression floored with bare dirt. Set into the
dirt is a strong steel grate mounted in concrete. A dry streambed leads into
the depression."
S052: "You're standing in it."
S053: "It just looks like an ordinary grate mounted in concrete."
S054: "You are in a small chamber beneath a 3x3 steel grate to the surface. A
low crawl over cobbles leads inward to the west."
S055: "They're just ordinary cobbles."
S056: "You are crawling over cobbles in a low passage. There is a dim light at
the east end of the passage."
S057: "It's a small wicker cage."
S058: "There is a small wicker cage discarded nearby."
S059: "You are in a debris room filled with stuff washed in from the surface. A
low wide passage with cobbles becomes plugged with mud and debris here, but an
awkward canyon leads upward and west.
A note on the wall says, "Magic word XYZZY.""
S060: "Yuck."
S061: "The note says "Magic word XYZZY"."
S062: "It's a three foot black rod with a rusty star on an end."
S063: "A three foot black rod with a rusty star on one end lies nearby."
S064: "You are in an awkward sloping east/west canyon."
S065: "You are in a splendid chamber thirty feet high. The walls are frozen
rivers of orange stone. An awkward canyon and a good passage exit from east and
west sides of the chamber."
S066: "A cheerful little bird is sitting here singing."
S067: "At your feet is a small pit breathing traces of white mist. A west
passage ends here except for a small crack leading on.
Rough stone steps lead down the pit."
S068: "The crack is far too small for you to follow."
S069: "The pit is breathing traces of white mist."
S070: "The crack is very small -- far too small for you to follow."
S071: "Mist is a white vapor, usually water, seen from time to time in caverns.
It can be found anywhere but is frequently a sign of a deep pit leading down to
water."
S072: "You are at one end of a vast hall stretching forward out of sight to the
west. There are openings to either side. Nearby, a wide stone staircase leads
downward. The hall is filled with wisps of white mist swaying to and fro almost
as if alive. A cold wind blows up the staircase. There is a passage at the top
of a dome behind you.
Rough stone steps lead up the dome."
S073: "The staircase leads down."
S074: "The rough stone steps lead up the dome."
S075: "This is a low room with a crude note on the wall:
"You won't get it up the steps"."
S076: "The note says, "You won't get it up the steps"."
S077: "It's a large sparkling nugget of gold!"
S078: "There is a large sparkling nugget of gold here!"
S079: "The fissure is too terrifying!"
S080: "You are on the east bank of a fissure slicing clear across the hall. The
mist is quite thick here, and the fissure is too wide to jump."
S081: "The fissure is too wide."
S082: "You are on the west side of the fissure in the hall of mists."
S083: "The fissure is too wide."
S084: "A crystal bridge now spans the fissure."
S085: "It spans the fissure, thereby providing you a way across."
S086: "The fissure looks far too wide to jump."
S087: "some"
S088: "They look to be of the highest quality!"
S089: "There are diamonds here!"
S090: "You are at the west end of the hall of mists. A low wide crawl continues
west and another goes north. To the south is a little passage 6 feet off the
floor."
S091: "You are at the east end of a very long hall apparently without side
chambers. To the east a low wide crawl slants up. To the north a round two foot
hole slants down."
S092: "You are at the west end of a very long featureless hall. The hall joins
up with a narrow north/south passage."
S093: "You are at a crossover of a high N/S passage and a low E/W one."
S094: "You know as much as I do at this point."
S095: "You have reached a dead end."
S096: "You'll have to go back the way you came."
S097: "You are in the hall of the mountain king, with passages off in all
directions."
S098: "Well, perhaps not quite all directions."
S099: "I wouldn't mess with it if I were you."
S100: "A huge green fierce snake bars the way!"
S101: "You are in a low N/S passage at a hole in the floor. The hole goes down
to an E/W passage."
S102: "They're probably worth a fortune!"
S103: "There are bars of silver here!"
S104: "some"
S105: "You are in the south side chamber."
S106: "It's all quite exquisite!"
S107: "There is precious jewelry here!"
S108: "some"
S109: "You are in the west side chamber of the hall of the mountain king. A
passage continues west and up here."
S110: "They're a numismatist's dream!"
S111: "There are many coins here!"
S112: "many"
S113: "You are in a large room, with a passage to the south, a passage to the
west, and a wall of broken rock to the east. There is a large "Y2" on a rock in
the room's center."
S114: "There is a large "Y2" painted on the rock."
S115: "You are in a jumble of rock, with cracks everywhere."
S116: "You're at a low window overlooking a huge pit, which extends up out of
sight. A floor is indistinctly visible over 50 feet below. Traces of white mist
cover the floor of the pit, becoming thicker to the right. Marks in the dust
around the window would seem to indicate that someone has been here recently.
Directly across the pit from you and 25 feet away there is a similar window
looking into a lighted room. A shadowy figure can be seen there peering back at
you."
S117: "The only passage is back east to Y2."
S118: "It looks like a regular window."
S119: "It's so deep you can barely make out the floor below, and the top isn't
visible at all."
S120: "Evidently you're not alone here."
S121: "The shadowy figure seems to be trying to attract your attention."
S122: "You are in a dirty broken passage. To the east is a crawl. To the west
is a large passage. Above you is a hole to another passage."
S123: "You are on the brink of a small clean climbable pit. A crawl leads
west."
S124: "It looks like you might be able to climb down into it."
S125: "You are in the bottom of a small pit with a little stream, which enters
and exits through tiny slits."
S126: "You don't fit through the tiny slits!"
S127: "The slits form a complex pattern in the rock."
S128: "You are in a large room full of dusty rocks. There is a big hole in the
floor. There are cracks everywhere, and a passage leading east."
S129: "They're just rocks. (Dusty ones, that is.)"
S130: "You are in a maze of twisty little passages, all alike."
S131: "Easier said than done."
S132: "You are on the brink of a thirty foot pit with a massive orange column
down one wall. You could climb down here but you could not get back up. The
maze continues at this level."
S133: "It looks like you could climb down it."
S134: "You'll have to climb down to find out anything more..."
S135: "You are at a complex junction. A low hands and knees passage from the
north joins a higher crawl from the east to make a walking passage going west.
There is also a large room above. The air is damp here."
S136: "You are in bedquilt, a long east/west passage with holes everywhere. To
explore at random select north, south, up, or down."
S137: "You are in a room whose walls resemble swiss cheese. Obvious passages go
west, east, ne, and nw. Part of the room is occupied by a large bedrock block."
S138: "It's just a huge block."
S139: "You are at the west end of the twopit room. There is a large hole in the
wall above the pit at this end of the room."
S140: "It is too far up for you to reach."
S141: "The hole is in the wall above the pit at this end of the room."
S142: "You are at the bottom of the western pit in the twopit room. There is a
large hole in the wall about 25 feet above you."
S143: "You are at the east end of the twopit room. The floor here is littered
with thin rock slabs, which make it easy to descend the pits. There is a path
here bypassing the pits to connect passages from east and west. There are holes
all over, but the only big one is on the wall directly over the west pit where
you can't get to it."
S144: "They almost form natural stairs down into the pit."
S145: "You are at the bottom of the eastern pit in the twopit room. There is a
small pool of oil in one corner of the pit."
S146: "It looks like ordinary oil."
S147: "The hole is in the wall above you."
S148: "You are in a large low circular chamber whose floor is an immense slab
fallen from the ceiling (slab room). East and west there once were large
passages, but they are now filled with boulders. Low small passages go north
and south, and the south one quickly bends west around the boulders."
S149: "It is now the floor here."
S150: "They're just ordinary boulders."
S151: "You are in a secret N/S canyon above a large room."
S152: "You are in a secret N/S canyon above a sizable passage."
S153: "You are in a secret canyon at a junction of three canyons, bearing
north, south, and se. The north one is as tall as the other two combined."
S154: "You are in a large low room. Crawls lead north, se, and sw."
S155: "This is a dead end crawl."
S156: "You are in a secret canyon which here runs E/W. It crosses over a very
tight canyon 15 feet below. If you go down you may not be able to get back up."
S157: "You are at a wide place in a very tight N/S canyon."
S158: "The canyon here becomes too tight to go further south."
S159: "You are in a tall E/W canyon. A low tight crawl goes 3 feet north and
seems to open up."
S160: "A large stalactite extends from the roof and almost reaches the floor
below. You could climb down it, and jump from it to the floor, but having done
so you would be unable to reach it to climb back up."
S161: "You could probably climb down it, but you can forget coming back up."
S162: "You are in a secret canyon which exits to the north and east."
S163: "I wouldn't mess with it if I were you."
S164: "A huge green fierce dragon bars the way!"
S165: "The body of a huge green dead dragon is lying off to one side."
S166: "The canyon runs into a mass of boulders -- dead end."
S167: "This is the pirate's dead end."
S168: "It's the pirate's treasure chest, filled with riches of all kinds!"
S169: "The pirate's treasure chest is here!"
S170: "You are in a long, narrow corridor stretching out of sight to the west.
At the eastern end is a hole through which you can see a profusion of leaves."
S171: "The leaves appear to be attached to the beanstalk you climbed to get
here."
S172: "some"
S173: "You are at the top of a steep incline above a large room. You could
climb down here, but you would not be able to climb up. There is a passage
leading back to the north."
S174: "You are in the giant room. The ceiling here is too high up for your lamp
to show it. Cavernous passages lead east, north, and south. On the west wall is
scrawled the inscription, "Fee fie foe foo" [sic]."
S175: "It says, "Fee fie foe foo [sic].""
S176: "The nest is filled with beautiful golden eggs!"
S177: "There is a large nest here, full of golden eggs!"
S178: "The passage here is blocked by a recent cave-in."
S179: "You are at one end of an immense north/south passage."
S180: "It's just a big iron door."
S181: "The way north is barred by a massive, rusty, iron door."
S182: "The way north leads through a massive, rusty, iron door."
S183: "You are in a magnificent cavern with a rushing stream, which cascades
over a sparkling waterfall into a roaring whirlpool which disappears through a
hole in the floor. Passages exit to the south and west."
S184: "Wouldn't want to go down in in a barrel!"
S185: "The trident is covered with fabulous jewels!"
S186: "There is a jewel-encrusted trident here!"
S187: "You are in the soft room. The walls are covered with heavy curtains, the
floor with a thick pile carpet. Moss covers the ceiling."
S188: "The carpet is quite plush."
S189: "They seem to absorb sound very well."
S190: "It just looks like your typical, everyday moss."
S191: "It's just a small velvet pillow."
S192: "A small velvet pillow lies on the floor."
S193: "This is the oriental room. Ancient oriental cave drawings cover the
walls. A gently sloping passage leads upward to the north, another passage
leads se, and a hands and knees crawl leads west."
S194: "They seem to depict people and animals."
S195: "It's a delicate, previous, ming vase!"
S196: "The floor is littered with worthless shards of pottery."
S197: "They look to be the remains of what was once a beautiful vase. I guess
some oaf must have dropped it."
S198: "You are following a wide path around the outer edge of a large cavern.
Far below, through a heavy white mist, strange splashing noises can be heard.
The mist rises up through a fissure in the ceiling. The path exits to the south
and west."
S199: "You can't really get close enough to examine it."
S200: "You are in an alcove. A small northwest path seems to widen after a
short distance. An extremely tight tunnel leads east. It looks like a very
tight squeeze. An eerie light can be seen at the other end."
S201: "You're in a small chamber lit by an eerie green light. An extremely
narrow tunnel exits to the west. A dark corridor leads northeast."
S202: "an"
S203: "Plover's eggs, by the way, are quite large."
S204: "There is an emerald here the size of a plover's egg!"
S205: "You're in the dark-room. A corridor leading south is the only exit."
S206: "A massive stone tablet imbedded in the wall reads: "Congratulations on
bringing light into the dark-room!""
S207: "There is a platinum pyramid here, 8 inches on a side!"
S208: "The platinum pyramid is 8 inches on a side!"
S209: "You are in an arched hall. A coral passage once continued up and east
from here, but is now blocked by debris. The air smells of sea water."
S210: "You're in a large room carved out of sedimentary rock. The floor and
walls are littered with bits of shells imbedded in the stone. A shallow passage
proceeds downward, and a somewhat steeper one leads up. A low hands and knees
passage enters from the south."
S211: "It's incredibly large!"
S212: "Off to one side lies a glistening pearl!"
S213: "You are in a long sloping corridor with ragged sharp walls."
S214: "You are in a cul-de-sac about eight feet across."
S215: "You are in an anteroom leading to a large passage to the east. Small
passages go west and up. The remnants of recent digging are evident."
S216: "A sign in midair here says "Cave under construction beyond this point.
Proceed at own risk. [Witt Construction Company]""
S217: "There are a few recent issues of "Spelunker Today" magazine here."
S218: "I'm afraid the magazines are written in Dwarvish."
S219: "a few"
S220: "You are at Witt's End. Passages lead off in *all* directions."
S221: "You have crawled around in some little holes and found your way blocked
by a recent cave-in. You are now back in the main passage."
S222: "You are in a north/south canyon about 25 feet across. The floor is
covered by white mist seeping in from the north. The walls extend upward for
well over 100 feet. Suspended from some unseen point far above you, an enormous
two-sided mirror is hanging parallel to and midway between the canyon walls.
A small window can be seen in either wall, some fifty feet up."
S223: "The mirror is obviously provided for the use of the dwarves who, as you
know, are extremely vain."
S224: "The mirror is obviously provided for the use of the dwarves, who as you
know, are extremely vain."
S225: "You're at a low window overlooking a huge pit, which extends up out of
sight. A floor is indistinctly visible over 50 feet below. Traces of white mist
cover the floor of the pit, becoming thicker to the left. Marks in the dust
around the window would seem to indicate that someone has been here recently.
Directly across the pit from you and 25 feet away there is a similar window
looking into a lighted room. A shadowy figure can be seen there peering back at
you."
S226: "The only passage is back west to the junction."
S227: "You are at the edge of a large underground reservoir. An opaque cloud of
white mist fills the room and rises rapidly upward. The lake is fed by a
stream, which tumbles out of a hole in the wall about 10 feet overhead and
splashes noisily into the water somewhere within the mist. The only passage
goes back toward the south."
S228: "You are in a long winding corridor sloping out of sight in both
directions."
S229: "The corridor slopes steeply up and down."
S230: "You are on one side of a large, deep chasm. A heavy white mist rising up
from below obscures all view of the far side. A southwest path leads away from
the chasm into a winding corridor."
S231: "The path winds southwest."
S232: "It just looks like an ordinary, but unstable, bridge."
S233: "The wreckage of the troll bridge (and a dead bear) can be seen at the
bottom of the chasm."
S234: "Trolls are close relatives with rocks and have skin as tough as that of
a rhinoceros."
S235: "A burly troll stands by the bridge and insists you throw him a treasure
before you may cross."
S236: "You are on the far side of the chasm. A northeast path leads away from
the chasm on this side."
S237: "You're in a long east/west corridor. A faint rumbling noise can be heard
in the distance."
S238: "The path forks here. The left fork leads northeast. A dull rumbling
seems to get louder in that direction. The right fork leads southeast down a
gentle slope. The main corridor enters from the west."
S239: "The walls are quite warm here. From the north can be heard a steady
roar, so loud that the entire cave seems to be trembling. Another passage leads
south, and a low crawl goes east."
S240: "You are on the edge of a breath-taking view. Far below you is an active
volcano, from which great gouts of molten lava come surging out, cascading back
down into the depths. The glowing rock fills the farthest reaches of the cavern
with a blood-red glare, giving everything an eerie, macabre appearance. The air
is filled with flickering sparks of ash and a heavy smell of brimstone. The
walls are hot to the touch, and the thundering of the volcano drowns out all
other sounds. Embedded in the jagged roof far overhead are myriad twisted
formations composed of pure white alabaster, which scatter the murky light into
sinister apparitions upon the walls. To one side is a deep gorge, filled with a
bizarre chaos of tortured rock which seems to have been crafted by the devil
himself. An immense river of fire crashes out from the depths of the volcano,
burns its way through the gorge, and plummets into a bottomless pit far off to
your left. To the right, an immense geyser of blistering steam erupts
continuously from a barren island in the center of a sulfurous lake, which
bubbles ominously. The far right wall is aflame with an incandescence of its
own, which lends an additional infernal splendor to the already hellish scene.
A dark, forboding passage exits to the south."
S241: "Don't be ridiculous!"
S242: "Great gouts of molten lava come surging out of the volvano and go
cascading back down into the depths. The glowing rock fills the farthest
reaches of the cavern with a blood-red glare, giving everything an eerie,
macabre appearance."
S243: "The sparks too far away for you to get a good look at them."
S244: "Embedded in the jagged roof far overhead are myriad twisted formations
composed of pure white alabaster, which scatter the murky light into sinister
apparitions upon the walls."
S245: "The gorge is filled with a bizarre chaos of tortured rock which seems to
have been crafted by the devil himself."
S246: "The river of fire crashes out from the depths of the volcano, burns its
way through the gorge, and plummets into a bottomless pit far off to your
left."
S247: "The geyser of blistering steam erupts continuously from a barren island
in the center of a sulfurous lake, which bubbles ominously."
S248: "You are in a small chamber filled with large boulders. The walls are
very warm, causing the air in the room to be almost stifling from the heat. The
only exit is a crawl heading west, through which is coming a low rumbling."
S249: "They're just ordinary boulders. They're warm."
S250: "a selection of"
S251: "You are walking along a gently sloping north/south passage lined with
oddly shaped limestone formations."
S252: "Every now and then a particularly strange shape catches your eye."
S253: "You are standing at the entrance to a large, barren room. A sign posted
above the entrance reads: "Caution! Bear in room!""
S254: "The sign reads, "Caution! Bear in room!""
S255: "You are inside a barren room. The center of the room is completely empty
except for some dust. Marks in the dust lead away toward the far end of the
room. The only exit is the way you came in."
S256: "It just looks like ordinary dust."
S257: "The chain has thick links of solid gold!"
S258: "You are in a maze of twisty little passages, all different."
S259: "You have reached a dead end. There is a massive vending machine here."
S260: "The message reads, "This is not the maze where the pirate leaves his
treasure chest.""
S261: "Hmmm... There is a message here scrawled in the dust in a flowery
script."
S262: "The instructions on the vending machine read, "Insert coins to receive
fresh batteries.""
S263: "They look like ordinary batteries. (A sepulchral voice says, "Still
going!")"
S264: "There are fresh batteries here."
S265: "They look like ordinary batteries."
S266: "Some worn-out batteries have been discarded nearby."
S267: "It's probably not a good idea to get too close. Suffice it to say the
little guy's pretty aggressive."
S268: "A threatening little dwarf hides in the shadows."
S269: "There is a little axe here."
S270: "It's just a little axe."
S271: "You are at the northeast end of an immense room, even larger than the
giant room. It appears to be a repository for the "Adventure" program. Massive
torches far overhead bathe the room with smoky yellow light. Scattered about
you can be seen a pile of bottles (all of them empty), a nursery of young
beanstalks murmuring quietly, a bed of oysters, a bundle of black rods with
rusty stars on their ends, and a collection of brass lanterns. Off to one side
a great many dwarves are sleeping on the floor, snoring loudly. A sign nearby
reads: "Do not disturb the dwarves!""
S272: "It looks like an ordinary, albeit enormous, mirror."
S273: "An immense mirror is hanging against one wall, and stretches to the
other end of the room, where various other sundry objects can be glimpsed dimly
in the distance."
S274: "You've seen everything in here already, albeit in somewhat different
contexts."
S275: "I wouldn't bother the dwarves if I were you."
S276: "hundreds of angry"
S277: "You are at the southwest end of the repository. To one side is a pit
full of fierce green snakes. On the other side is a row of small wicker cages,
each of which contains a little sulking bird. In one corner is a bundle of
black rods with rusty marks on their ends. A large number of velvet pillows are
scattered about on the floor. A vast mirror stretches off to the northeast. At
your feet is a large steel grate, next to which is a sign which reads,
"TREASURE VAULT. Keys in main office.""
S278: "It just looks like an ordinary steel grate."
S279: "The grate is open."
S280: "The grate is closed."
S281: "You've seen everything in here already, albeit in somewhat different
contexts."
S282: "It's a three foot black rod with a rusty mark on an end."
S283: "A three foot black rod with a rusty mark on one end lies nearby."
S284: "About Adventure"
S285: "Instructions"
S286: "History"
S287: "Authenticity"
S288: "Did you know..."
S289: "There is information provided on the following:
Instructions for playing
The history of this game
How authentic is this edition?
"
S290: "There is information provided on the following:
Instructions for playing
The history of this game
How authentic is this edition?
Did you know...
"
[End of text]
[End of file]